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

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

pythonで文字列を式として計算するeval()関数

へー便利!と思ったのでメモ
eval()関数は**式**の文字列を引数として計算結果を返す。

## 使い方
“`
>>> eval(“1 + 2”)
3
>>> eval(“1” “2”)
12
>>> eval(“1” + “2”)
12
>>> eval(“1” “+” “2”)
3
“`


どういう時に使うのかというと、僕はAtCoderの[この問題](https://atcoder.jp/contests/arc061/tasks/arc061_a)で使いました。

問題文
1 以上 9 以下の数字のみからなる文字列 S が与えられます。 この文字列の中で、あなたはこれら文字と文字の間のうち、いくつかの場所に + を入れることができます。 一つも入れなくてもかまいません。 ただし、+ が連続してはいけません。
このようにして出来る全ての文字列を数式とみなし、和を計算することができます。
ありうる全ての数式の値を計算し、その合計を出力してください。

“`python

from itertools import product
s = list(input())

元記事を表示

DeeplearningにGPUの役立つ場面?

GPUは Deep learning の訓練段階において、miniバッチを分割して並列計算に有効だと理解できていますが、
Q1: 訓練段階においてサブバッチを分割以外でもGPU、とりわけ多GPUを利用する場面があるのでしょうか

Q2: テスト段階にもGPUが役立つのでしょうか。

宜しくお願いします

元記事を表示

Queueの平均値

# はじめに
以前、なにかでQueueの値の平均値が求めたいということがありました(なんでそれが必要になったかは覚えていないですが)。
そのときは以下のコードでごり押しして平均値を求めていました。

“`python:queue_test.py
import queue

def queue_ave(q):
queue_list = []
while not q.empty():
queue_list.append(q.get())
for value in queue_list: # stackの場合はreversed(queue_list)に変更
q.put(value)
return sum(queue_list) / len(queue_list)

# 動作確認
q = queue.Queue()
q.put(1)
q.put(2)
q.put(6)
q.put(8)
print(queue_ave(q)) # 4.25
“`

このコード(関数)の流れとしては、

1. Queueからすべて取り出し

元記事を表示

今日のpython error: UnicodeEncodeError: ‘ascii’ codec can’t encode characters

今日のpython error: UnicodeEncodeError: ‘utf-8’ codec can’t encode characters
https://qiita.com/kaizen_nagoya/items/ac48ba7946b303bb25fb

からの作業記録

“`shell-session:docker/ubuntu
# python3 wid.py HAZOP
/wiki/FMEA
Traceback (most recent call last):
File “wid.py”, line 25, in
print (unquote(link.attrs[‘href’]))
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 6-14: ordinal not in range(128)
“`

元記事を表示

PyTorchとscikit-learnでより見やすい性能指標を作る

## はじめに
自分が普段分類問題を解いてる中でこれ見やすいんじゃねと思った指標をコード以外でも残しときたいので書きました.

## code only
[PyTorchの転移学習チュートリアル](https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html)(1)にあるコードを改良してます.
importはあんまりなので怒らないで・・・

“`python
import torch
import torch.nn as nn
import torch.optim as optim
from torch.optim import lr_scheduler
import numpy as np
import torchvision
from torchvision import datasets, models, transforms
import matplotlib.pyplot as plt
import time
import os
import copy
from PIL import Image

元記事を表示

PythonでHTMLフォームのデータを受信し表示する

PythonでHTMLフォームのデータを受信し、表示させてみた。

## HTMLファイルの記述

まずはHTMLでフォームを送信するコードを記述する。

“`html:index.html










“`

– `method`について

`method`には、データを取得する`GET`メソッドと、データを送信する`POST`メソッドがある。
今回は、データを送信するので、`POST`メソッドを用いる。

– `action`について

`action`で、データを送

元記事を表示

【python】dbファイルをcsv化する方法

pythonでしたほうがいい場合もありますよね。

#方法
1. splite3でデータベースを読み込む
2. headerを作り、dataframeを用意する
3. 各データをdataframeに挿入しcsvとして保存する

以上の要領です。

##### sqlite3でデータベースを読み込む

“`
import splite3
path = ‘path_to_db’
conn = sqlite3.connect(path)
“`

##### headerを作り、dataframeを用意する

“`
import pandas as pd
header = []
c = conn.cursor()
for column in c.execute(‘PRAGMA table_info(“table_name”)’):
header.append(column[1])
“`

##### 各データをdataframeに挿入しcsvとして保存する

“`
df = pandas.DataFrame(columns=header)
for raw in c.execu

元記事を表示

RaspberryPiのPythonでMySQLへ接続する

TWE-Liteのセンサー値をテーブルにINSERTしたかったので、その準備

コマンドはたった1つ

“`
$ sudo pip install PyMySQL
“`
上記がダメなら下記をインストール

“`
$ sudo pip install mysql-connector-python-rf
“`
これだけで、ソースに記述したDB関連が動くようになる。
以上。

元記事を表示

田舎者の私がMessagingAPIを使って地下鉄を攻略するまでの過程

#はじめに
ちょっとした好奇心からLINEのMessagingAPIに触りたくなり, 簡単なLINEボットを作りました.
駅名を入力すると, 駅の出口とそこから行ける場所の一覧が返ってきます.
詳細は下の動画をご参照ください.

元記事を表示

チコちゃんに叱られないよう、チカちゃんとしりとりをする

「チコちゃんに叱られる!」はNHKの番組です。チコちゃんの素朴な疑問に答えられないと「ボーっと生きてんじゃねーよ!」と叱られるという番組です。ちなみにこの記事を書いている12月末ではさだまさし先生がゲストで登場しました([さだまさしアドヴェントカレンダー](https://qiita.com/advent-calendar/2015/sadatech)を懐かしく思い出します)。

この番組の中で「チコの部屋」というしりとりゲームをするコーナーがあります。チコちゃんは5才とは思えない語彙力でゲストを圧倒するのですが、これを見ていた私は大人げなくチコちゃんにどうにか勝ちたいと思いました。


出典: [NHK 「チコちゃんに叱られる!」より](https://www4.nhk.or.jp/chikochan/)

そして生まれたのが、体は

元記事を表示

pandas.to_datetimeに入力する日付文字列のパターンをいろいろ試してみた

## はじめに
Python実践データ分析100本ノックを進めていたところ、pandas上で日付データを扱っていた。
文字列の日付から日付型データに変換するのにpandas.to_datetime()を使っていたのだけれども、formatなど示さずに適当に変換して、うまくいっていた。
どういう形式ならうまくいくのかよくわからなかったので、確認してみた。

## 試した環境
– python 3.7.4
– pandas 0.25.3

## うまくいったパターン

“` python
>>> import pandas as pd
>>> from datetime import datetime

# ハイフンでで区切るパターン
>>> pd.to_datetime(“2019-12-31”)
Timestamp(‘2019-12-31 00:00:00’)

# datetime.

元記事を表示

Pythonで基本情報技術者試験の過去問PDFを一気にダウンロードする話

# 概要
Python の urllib パッケージを用いて[基本情報技術者試験(FE)](https://www.jitec.ipa.go.jp/1_11seido/fe.html)の過去問PDFをダウンロードする.
# 詳細
基本情報技術者試験の過去問は IPA の公式 Web サイトで[公開されている](https://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_mondai.html).しかし,問題や解答は年度毎に掲載されており,いちいち各年度のページに移動してダウンロードしなければならない.この煩わしい手間を省くため,Python の urllib パッケージを用いて問題や解答を一気にダウンロードする.
## URLを調べる
過去問の掲載ページを見てみると,例えば平成27年度春期試験の URL は次の通りである.

– 午前試験
– 問題: https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2015h27_1/2015h27h_fe_am_qs.pdf

元記事を表示

今日のpython error: UnicodeEncodeError: ‘utf-8’ codec can’t encode characters

昨日(20191230)の記事

今日のpython error: ModuleNotFoundError: No module named ‘bs4’
https://qiita.com/kaizen_nagoya/items/f0056e5fc735b3ad5783

で、最後に出た

“`shell-session:docker/ubuntu
# python3 wib.py
Traceback (most recent call last):
File “wib.py”, line 15, in
url = “https://ja.wikipedia.org/wiki/” + urllib.parse.quote(args[1])
IndexError: list index out of range
“`
これは、実行時に引数を与えなかったからだった。
夜遅くの作業で、記事をあげて修了した。

朝、起きて、「IndexError: list index out of range」検索
IndexError: list index out of

元記事を表示

python+selenium+safari-webdriverでmacからiphoneのsafariを動かす

# 動機
iOS13からsafariのwebdriverが正式導入されたみたいな記事を発見したが
([Webdriver is Comming to Safari in iOS13](https://webkit.org/blog/9395/webdriver-is-coming-to-safari-in-ios-13/))全然やり方の記事を見つけられなかったので自分で試行錯誤しながら、動かすところまでできたので記録として残したいと思います。

### 目次
1. iPhone側での設定
2. MAC側から操作

# ①iPhone側の設定
– 設定→Safari→詳細→リモートオートメーションをオンにする
– iPhoneをMACに接続し、このコンピュータを信頼するにはい

# ②MAC側からの操作
まずseleniumのインストール
`pip install selenium`

下記はpythonでのコード

~~~
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities

元記事を表示

Pythonで解く競プロテクニック集

# どういう記事
どうも。私(@rainline00)がAtcoder Begginers Contestの過去問をpythonで解いていく過程で必要になった競プロ独特の書き方をまとめていきます。随時追記していきます。

# index
## 書き方
[入力](#入力)
[リストの要素検索](#リストの要素検索)

## アルゴリズム関連
[最大公約数・最小公倍数](#最大公約数最小公倍数)
[累積和](#累積和)

# 入力
“`python:
s = input() #文字列
n = int(input()) #整数値
a, b = map(int, input().split()) #2つ以上の整数
li = list(map(int, input().split())) #list

li2 = []
for _ in range(n):
li2.append(int(input())) #n行に1つずつ入力される整数
“`

# リストの要素検索
`list.index(n)`では一致した値のインデックスを一つしか返さない。リスト内包表記を用いて複数の値をリストに

元記事を表示

ルータ管理ページへのブルートフォースアタック

# 背景
 学校やカフェなどで提供されているWiFiネットワークは、ユーザの端末からでも192.168.X.1で管理画面ページを開ける状態になっている場合が少なくありません。もちろんパスワードは求められるのですが、ブルートフォースアタック(総当り攻撃)によりパスワードが特定される場合があります。これにより管理画面に入られ、任意のファームウェアが配置され、パケット盗聴やフィッシングなどやられ放題になります。あなたが昨日行ったカフェで打ったSNSパスワード、今はダークネットに晒されているかも、、、
# 概要
 今回は、ELECOMのBasic認証の管理画面にブルートフォースアタックを仕掛け、パスワードを特定してみます。

# 環境
* Ubuntu 18.04
* Python 3.6.9

# 攻撃前確認
個人経営のカフェが家庭用WiFiルータをアクセスポイントとして提供しているとします。来客はメニュー表などに書いてあるパスワードをつかってWiFiにアクセスします。もちろん攻撃者もアクセス可能です。
攻撃者はおもむろに以下のコマンドを打ち、自分のIPを確認します。

“`shell

元記事を表示

GuidedLDAで特許課題解決手段マップ作成(前半)

#1.目的
 特許文章は長いので効率的に読みたい、または把握したい。この際に文章を「課題(目的)」と「解決手段」でカテゴリ分けしてマップ化できると把握がしやすい。図としては下記のような感じ。
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/385220/cb446240-aca5-df67-9970-348d217779ea.png)
>参照:http://www.sato-pat.co.jp/contents/service/examination/facture.html

 この課題軸と解決手段の軸(ラベル)を文章から自動的に抽出したい。問題意識は[この記事](https://qiita.com/niship2/items/1ba5eadd9183534179a6)とほぼ同じ。やり方の1つに[LDA](https://ci.nii.ac.jp/naid/110009691514)がある。しかし、通常のLDAではトピックが自由に操作できない。人間が「このトピックにはこんな言葉が出る

元記事を表示

Pythonの組み込み関数69個を制覇する 第6回 p~r

Pythonでは、非常に多くの組み込み関数(Built-in Functions)が用意されており、ライブラリをimportせずとも様々な処理を行うことができます。
基本に立ち返って、組み込み関数の使い方を整理して行きたいと思います。

尚、実行例はWindows Subsystem for Linux 2 (WSL2)のUbuntu18.04にインストールしたPython3.7.5で作成しています。

(注意事項)
更新の期間が空いた結果、第4回までの記事とPythonのマイナーバージョンおよび実行環境が異なっていますのでご注意ください。
また、執筆時現在、Python3.8.0がリリースされていますが、本シリーズではPython3.7系での記述を行っていますので、そちらも留意いただければと思います。

[Pythonの組み込み関数69個を制覇する 第1回 a~b](https://qiita.com/ichi_taro3/items/cd71a8e43040abb446a1)
[Pythonの組み込み関数69個を制覇する 第2回 c~d](https://qiita.com/ich

元記事を表示

CenterNet(Objects as Points)のオリジナルデータでの学習方法について

#CenterNetとは
CenterNetとは、[Objects as Points](https://arxiv.org/abs/1904.07850)という論文で提案された物体検出手法のことです。

物体の中心を特徴点として検出した後、幅・高さのサイズを予測するため、従来の手法と比して計算が軽いなどのメリットがあるようです。

[CenterNetを使ってテニスの選手,ボール,コートの位置を検出してみた](https://qiita.com/sho101/items/0f9ef0999f1124e3b633)と同じことをやりたく、CenterNetを使ってあれこれやっています。

CenterNetですが、ソースコードは[Github](https://github.com/xingyizhou/CenterNet)で公開されており、学習済みモデルを使って推論するなどは、Readme通りに作業すればできます。ただオリジナルデータの学習については、説明や情報が少なく、作業を進めるのに少し苦労しました。作業メモ共有のためと思い、簡易記事を書きました。参考になれば幸いです。

#環境

元記事を表示

【GCP】Google Cloud StorageをPythonで操作する

#google-cloud-storageのインストール
“`shell
$ pip install –upgrade google-cloud-storage
“`

#ストレージクライアントの作成
“`python

from google.cloud import storage
client = storage.Client()
“`

#バケットに対する操作
###バケットの作成
“`python
bucket = storage.Bucket(client)
bucket.name = “test-bucket”
bucket.location = “asia-northeast1”
client.create_bucket(bucket)
“`

###バケットの取得
“`python
bucket_name = “test-bucket”
bucket = client.get_bucket(bucket_name)
“`

###バケットの一覧表示
“`python
for bucket in client.list_buckets():

元記事を表示

OTHERカテゴリの最新記事