Python3関連のことを調べてみた2019年12月18日

Python3関連のことを調べてみた2019年12月18日

scapy で仮想 IP を作成し ping の応答を得る。

## はじめに

Scapy は、ネットワークパケット操作のツールで、パケットの生成からデコードまで、色々な事ができます。
例えば、通信エラー発生時のパケットを同じように作成して動作確認するなど、問題の再現テストなどにも利用できると思います。
ここでは、単に仮想的なアドレスに対しての ping 応答を得るだけの環境を作成してみましたので、その説明です。

## scapy のインストール

・RedHat
 https://access.redhat.com/solutions/3759961
 (How to install scapy for network troubleshooting in Red Hat Enterprise Linux 7? )

## arp 応答プログラム

IP 通信を行うためには、まずは arp の問い合わせに対して応答を返さないといけません。
そのためのプログラムとして以下。※どこかの URL を参考にしたのですが、もう思い出せない。

“`
#!/usr/bin/python3

from scapy.all import *

# Your

元記事を表示

さくらのレンタルサーバスタンダードに python3 で pip3 したメモ

当方、Linuxといえば「ls? 隠しファイル見るのは、えーっと、-aだっけ?」ぐらいの知識しかないです。
が、必要に駆られて、さくらのレンタルサーバにpython3をインストールしました。

参考にしたページ:https://ricom-techno.com/65/

上記ページに書かれている通りやればできました。
素晴らしかったです、記事主さんありがとうございます。

# 失敗を含む作業の流れ

要約は「pythonのバージョンは **3.8じゃなくて3.6** だよ」です。

以下は薄い内容の失敗談なので、お時間がある方はどうぞ。

## python3.8.0を何事もなくインストールしてしまう

pythonのサイト見たら、3.8.0というやつがstableだと書いてありました。
浅はかにも「わかんないけど、新しい方がいいのかなぁ?」と思いました。

さくらにSSHで接続し、ホームディレクトリに居る状態で:

“`shell:作業場所作って
% mkdir -p ~/wk/p3
% mkdir -p ~/local/python
“`

“`shell:Pythonをダウ

元記事を表示

kaggleを始める前に、python言語が壁な人への導入【全7講義まとめ】

#はじめに
日経 xTECH ビジネスAI Advent Calendar 2019
[AI道場「Kaggle」への道](https://qiita.com/advent-calendar/2019/xtech-businessai-kaggle)の18日目を担当させていただきます。

過去の記事で、
[kaggleに登録したら、まずcontributerを目指そう](https://qiita.com/Ringa_hyj/items/22954bb7bbd8a4671126)
なんて記事を書きましたが、kaggleって興味あるけど、そもそもpythonインストールしただけで何もしてないんだよね・・という方!
kaggleにはcoursesという導入を助けてくれるコーナーがあるのですよ!
導入も学べてコンペで技術も学べる!kaggleってすばらしい!

#英語なんだけど・・・

プログラミングとか機械学習界隈は英語ばかりなんです・・・
助けてg〇〇gle先生! でもいいのですが、今回は細かい部分にコメントを入れながらpython導入コースのさらに導入を担当しようかと。

#kagg

元記事を表示

スクレイピングとデータ保存

素人が投稿サイトから情報をスクレイピングし、sqlite3で保存するまでのメモです。
[雑談Slack Advent Calendar 2019](https://adventar.org/calendars/4684) 18日目の関連記事でもあります。

先人の多くの記事を参考にしました。
`Beautifulsoup4`で他の記事を検索されると、そちらのほうが詳しいでしょう。

##やりたいこと
– 投稿のサムネイルページをみて、概要情報をDBに保存する。
– 必要があれば各投稿ページをみて、詳細な投稿情報をDBに保存する。

##環境
– Windows10 Pro + Python3.7.1 x64 (BeautifulSoup4 , SQLite3)

##対象ページの情報調査
スクレイピング対象のページから使えそうなテキストデータをピックアップします。

– __サムネイルページ__
![Qiita説明用1-サムネイルページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223386/0

元記事を表示

SQLite3からcsvへ出力する

# はじめに
いつもはcsvからデータを分析することが多いのですが、今日はsqliteのデータベースにデータが入っていました。
今回は、sqliteからcsvファイルを出力するメモを書いていきます。

# 基本のコマンド
|コマンド|説明|
|—|—|
|.tables|テーブルの一覧表示|
|.schema|テーブルの構造を表示|
|.quit|終了する|
|.headers|onにするとヘッダーが出る|
|.mode|csvにするとカンマ区切りになる|
|.show|設定の表示|
|.output|ファイル指定すると出力先がファイルになる|

## データベースを開く
最初に編集するデータベースを開きます。
`sqlite3 hoge.sqlite3 `

## データベースからcsvに書き出す
`fuga`の部分を.tablesで出てきた取得したいデータに書き換えてください。

“`
sqlite> .tables
sqlite> .headers on
sqlite> .mode csv
sqlite> .output output.csv
sqlite> selec

元記事を表示

LamdaでPythonを使い、TwitterAPIで自動「いいね」する!

今回のものは、過去の[この記事](https://qiita.com/gurensouen/items/484e3198bcafa69f5c8b)を元に加筆/修正したものになります!

記事タイトル通り、AWSサービスのLambdaを使用して、Twitterの自動「いいね」などをしつつ、LambdaでPythonを使う方法にフォーカスを当てて簡単に説明していきます。

##本題の前に
– TwitterAPIを使用するために必要なアクセストークンの取得は[こちら](https://bookreco.net/program/twitterapi_using/)で!

– Pythonのpipコマンドのインストールは[こっち](https://qiita.com/suzuki_y/items/3261ffa9b67410803443)で!

##本題

####ファイル作成

デスクトップに作業用ディレクトリを作成しましょう。
コマンドでも、「control+クリック」でも構いません。
ただ後々めんどくさくなるので、ローマ字表記にしましょう。
作成したら、ターミナルかコマンドプロンプト

元記事を表示

親クラスで子クラスのクラス名を取得する

これでKodomoと出力される

“`python
class Oya(object):
def __init__(self):
print(type(self).__name__)

class Kodomo(Oya):
def __init__(self):
super().__init__()

child = Kodomo()
“`

元記事を表示

Bubble Sort

# Pythonで「バブルソート(Bubble Sort)」

## はじめに
ここでは[「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」][1]の中で取り上げられている[「AOJ (Aizu Online Judge」)][2]の問題を自分で解いた際に学んだことや、こう考えれば分かりやすいと感じたことなどを自分への整理も兼ねてまとめています。
このテキストはC++で書かれているので、私のようにpythonで勉強をされている初学者の方の参考になれば幸いです。また私自身も初学者ゆえ、至らない点が多々あると思いますので、ご指摘・ご助言頂ければ喜びます。よろしくお願いします。

## 問題詳細
[ALDS1_2_A; Bubble Sort][3]
バブルソートで昇順に並べ替える問題です。
問題詳細は上記リンクをご参考ください

## 考え方
●順番が逆になっている隣接要素が無くなるまで、次の処理を繰り返します
1. 配列の末尾から隣接する要素を比べていき、大小関係が逆なら交換

## pythonコード
“`python
def BubbleSort(A, N):

元記事を表示

自分用のメモ python

###とりいそぎ
重み付きランダム選択

“`python
import random
data = [“1″,”2″,”3”]
w = [5,3,2]
for i in range(10):
print(random.choices(data,weight=w))
# result
# “1”:5
# “2”:3
# “3”:2
“`

自身が置いてあるディレクトリ名の取得

“`
import os,sys
print(os.path.dirname(sys.argv[0]))
# result
# C:\~~~
“`

半角大文字英語と数字のリスト

“`
alph = [chr(i) for i in range(65, 65+26)]
num = [chr(i) for i in range(48,48+10)]
# result
# alph = [“A”,…,”Z”]
# num = [“0″,…,”9”]

“`

元記事を表示

Python B問題対策(Atcorder)

#for文問題
“`python
N=input()

cnt=0
for i in range(len(N)):#書き方忘れてた…
cnt+=int(N[i]) #int型にしてなくて、躓いてた(笑)

if int(N)%cnt==0:
print(“Yes”)
else:
print(“No”)
“`
https://atcoder.jp/contests/abc100/tasks/abc100_c

“`python
N=int(input())
A=list(map(int,input().split()))#一旦、入力を全て終了させる!
ans=0

print(A)

for a in A:
cnt=0
while(a%2==0):
a/=2
cnt+=1
ans+=cnt
print(ans)

#入力
10
2184 2126 1721 1800 1024 2528 3360 1945 1280 1776

#出力
[2184, 2126, 1721, 1800, 1024,

元記事を表示

Vultr で GeoDjango アプリケーションを動かすまでの長かった道のり

:sob: いきなりすみませんが、2019/12/17現在まだ書き終わっていません。明日終わらせます。ごめんなさい。URLだけ先にお渡しします。:sob:

このポストは、[Django Advent Calendar 2019 – Qiita](https://qiita.com/advent-calendar/2019/django)の17日目の記事です。

こんちは!しんせいたろうです。[モグモグDjango](https://mogumogu-django.connpass.com/)の主宰してます。

現在、[アーバンデータチャレンジ](https://urbandata-challenge.jp/)に東東京のアザラシチームの一員として、DRFを頑張っています。

「アーバンデータチャレンジ」とは、地域課題の解決を目的とした地方自治体を中心とする公共データを活用した年間のイベント開催を伴う一般参加型コンテストです。東東京チームは定期的にがやがや会という楽しくもくもくする会を開催していますので、公共データや地域課題解決などに興味があるエンジニアの方、ぜひぜひお越しくださいませ

元記事を表示

Pythonで負の数の余りを求めるとどうなる?

#目的
余りを求める計算はよく行う
例えばリストで余りを使えば要素数をオーバーしても最初に戻って参照できる

“`python
array = [“a”, “b”, “c”]
index = 2

print(array[index])
#>> c

print(array[index+1])
#IndexError: list index out of range

print(array[(index+1)%3])
#>> a
“`

ここで単純な疑問
__負の数の余りを求めたらどうなるんだろう__
数学としては余りは正の数になる
果たしてそうなるのか、もしくはエラーになるのか

#やってみた
負の数を3で割った余りを求めてみる

“`python
print(-1%3)
#>> 2
print(-2%3)
#>> 1
print(-3%3)
#>> 0
print(-4%3)
#>> 2
print(-5%3)
#>> 1
print(-6%3)
#>> 0
“`

全て正の数
(割られる数) = (割る数) * (商) + (余り)
を満たす余りになった
余りは割る数よ

元記事を表示

matplotlibの謎の1行目をたった1文字で消し去る超小技

#はじめに
Pythonで簡単にグラフを描画できるツールであるmatplotlib
これをJupyter Notebook上などで使いグラフを書こうとすると、グラフの上に謎の1行目が表示されることがある。今回はその謎の1行目を**たった1文字**で消す方法を書く。

# 問題
謎の1行目とは、以下の画像のようなものである。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542184/02a69c20-3117-12a1-697c-e1b668911f75.png)

この\の他にも、\など、謎の1行目に表示される文字列はさまざまである。

# 原因
そもそも、この1行目はmatplotlib固有の問題ではなく、Jupyter Notebookの仕様によるものである。
Jupyterでは、セルの最後に評価したオブジェクトが出力される。例えば、変数str

元記事を表示

スマホを置き忘れて家を出るのをなんとかできないかと思って頑張ってみた

[IoTLT Advent Calendar 2019](https://qiita.com/advent-calendar/2019/iotlt_neo) 17日目の記事です。

昨年に引き続きIoTLTのアドベントカレンダーを担当させていただくことになりました。よろしくお願いいたします。

昨年書いたやつ: [IoTの台風の目!?EnOceanについて本気出して語ってみた](https://qiita.com/a-yoshino/items/29c34795c87ad9f21665)

## モチベーション & アイディア

突然ですが皆さん、家を出た時に「スマホ忘れた!家帰るのめんどい!!」的な絶望感に襲われた経験ありませんか。私はしょっちゅうあります。
常々このよ

元記事を表示

Repl.itでFlaskの疑似OSもどき用WEBアプリを作ってみました

## 0.初めに

私はエンジニアではないただのドシロウトです。

[Flask Advent Calendar 2019](https://qiita.com/advent-calendar/2019/flask)が沢山空いていたのでシロウトのショボい記事ですが書く気になりました。

私はJavaScriptが少し触れる程度のスキルしかありません。

その乏しいスキルを使って以前「疑似OSもどき」という物を作り、Qiita記事にしています。

[ドシロウトがOSもどきみたいのをHTMLで作ってみる – Qiita]
(https://qiita.com/basictomonokai/items/5ec68a2aeb01de94c526)

HTML,CSS,JSを使ったOSみたいな画面でJSで作った「疑似アプリもどき」を動かす仕組みです。

この記事では簡単なホームページくらいしかつくれないドシロウトが1個の「疑似アプリもどき」をオンラインIDEのRepl.itを使ってFlask WEBアプリで作ってみたという話になります。

## 1.Repl.itとは

丁寧な照会記事がありまし

元記事を表示

Prophet を使って問い合わせの件数を予想したはなし

この記事は [SmartHR Advent Calendar 2019](https://qiita.com/advent-calendar/2019/smarthr) の記事です。

こんにちは。SmartHRでサポートをしている狩野です。
今回は Facebook が公開している時系列予測機械学習ライブラリ Prophet を利用して問い合わせの件数を予測した話を書きます。

## そもそも課題

SmartHRでは、プロダクトのお問い合わせをチャットで受け付けております。そのお問い合わせの件数を予測することが課題でした。

特に年末調整時期は、件数が多くなり、いつ頃?どのくらい件数になるか?を知ることは、グループの人員計画や、メンバーのシフトを作成する上で極めて重要な情報です。

Excel 等のツールでモデルを作成して予測することもできますが、
複雑な数式、随時更新されるパラメータを保守し、精度を上げていくためには結構パワーがかかりそうでした。

いろいろ調べてみると、Facebook が提供している時系列分析ライブラリがあり、python か R の知識とドメイン知識があれ

元記事を表示

pythonistaのsceneモジュールでタッチ関係のメソッドを触ってみた

#動機
pythonistaでuiを使い、簡単なアプリ等を作っていたました。
普段、ワンフリックでアプリを切り替えるランチャーを愛用していたのでそれを再現しようと考えたところ、タッチに関しても日本語の情報が少なかったため苦労したので、備忘録的に残しておこうと考えました。

#環境
pythonista 3 ver. 3.2
iphone 11 iOS13.2.3

#プログラム
フリックの方向を取得して起動するアプリを選択するようなアプリを制作しようと考えています。
その為、フリックの方向を取得するようなプログラムになっています。
実際の動作としては単にメソッドの呼び出されるタイミングを学習するような感じです。

“`touchTest.py
import scene
import numpy as np

class MyScene(scene.Scene):
def setup(self):
self.backgroud_color = ‘#3a3aff’

# フリックのベクトルの始点と終点
self.startpoint

元記事を表示

Tkinterで画面切り替え、複数webCamの映像取得

# Tkinterで画面切り替え&映像取得
複数のウェブカメから取得した映像を画面切り替えで確認できるプログラム
画面遷移とcv2組み込み両方分かっちゃうぞ!
一番簡単な形を目指したので***ttk***とかいう**おしゃれコマンド**は**使わない**
### とりあえずコード
**・openCV**
**・pillow**
が入ってれば動く‥はず

“`main.py
# -*- coding: utf-8 -*-
import tkinter as tk
import tkinter.font as font
import cv2
import PIL.Image, PIL.ImageTk

class App(tk.Tk):
# 呪文
def __init__(self, *args, **kwargs):
# 呪文
tk.Tk.__init__(self, *args, **kwargs)

# ウィンドウタイトルを決定
self.title(“Tkinter_cv2”)

#

元記事を表示

AWS LambdaでPython3のfunctionをServerless FrameworkでDeploy

※ 公開日を勘違いしていて、翌日になってしまってスミマセン

# はじめに
– この記事は [Pythonその3 Advent Calendar 2019
](https://qiita.com/advent-calendar/2019/python3) の16日目です。
– AWS LambdaでPython3のfunctionをServerless FrameworkでDeployして公開するまでのメモです。

# 前提
– npmコマンドが使える状態
– serverless framework用のIAMユーザがある状態
– 公式の[この辺](https://serverless.com/framework/docs/providers/aws/guide/credentials/)を参考にするとよいです(AdministratorAccessが推奨)
– dockerが使える状態

# Serverless Frameworkの導入と設定

導入はnpm install一発です。

“`
$ npm install serverless
“`

–versio

元記事を表示

Siamese NetworkによるDeep Metric Learningで学習データにない画像のクラスを予測する

最近、Meta-Learningについて勉強したのでMeta-Learningの1つの手法であるMetric Learningについて記事をかいてみました。Metric Learningの基本的な手法であるSiamese NetworkをKerasとPytorchで実装して簡単な精度評価まで行いました。

Kerasの実装はシンプルなSiamese Networkを実装したもので、Pytorchの実装は以下の論文のアーキテクチャを実装し、論文と同様に精度評価してみたものになります。
[Siamese Neural Networks for One-shot Image Recognition](https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf)

# Meta-Learningとは?

[Meta-Learning: Learning to Learn Fast](https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html) より引用

> Meta-lea

元記事を表示

OTHERカテゴリの最新記事