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

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

【Twitterの紳士たちへ】.jpg-largeを.jpgに一括変換するscriptを書きました

# What is?
前略

あなたがTwitterでヱロ画像を収集していることを俺は知っている…。
そして`.jpg-large`を毎回ハンドで`.jpg`に直して保存していることも知っている…(してなかったらすみません)。

そんな! あなたに!!朗報です!!!

このスクリプトで崇高なるヱロ画像のファイル名を一括変換しましょう!!!!!

# 使い方
“`bash
$python rename_jpg-XXX_to_jpg.py
“`
※Windows環境でのみ確認

基本的に`.jpg-large`があるディレクトリにコピーしてダブルクリックで実行すれば実行可能です。

# 中身解説
めちゃくちゃ簡単なスクリプトで、自分が初めて作ったまともに使えるスクリプトです。
2年くらい前に作ったものですが、バリバリ現役で使えてます。

#### おまじない
“`python
# coding: UTF-8
import sys
import os
“`

#### 対象のパス指定
“`python
if len(sys.argv) == 2:

元記事を表示

Python素人の自分が、「ゼロから作るDeep Learning」を読みながらDeep Learningに触れるの巻 その1

#まえがき
最近巷で流行っている人工知能だのAIなるものを、素人の自分もしてみむとしてするなり

ということで、1冊本を買ってきて、それの実装をやってみるという流れを記録することにしました。
対象の本は以下の通り。
[ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装](http://amzn.asia/0GbqyPT)

自分の目標として、書いたものを人に見せることで、発信したいという思いもあるので、
アウトプットの訓練も兼ねて、Qiitaに投稿することにしました。
生暖かい目で見守ってやってくださればと思います。

5/5現在、3章の途中まで執筆中。さいごまで心折れないようにがんばる。

# 筆者レベル
* 業務としては4年ほどASP.NET MVCを触って開発しています。Windowsプログラマです。
* 業務で触る言語は上記以外だとC#がメインで、少しだけC++を触ります。
* またWebフロントエンドも触るのでHTML/Javascript(jQuery含む)の知識はすこしあります。
* なお、業務ではPythonは全く出てきませんし、

元記事を表示

へたれオヤジのGoPiGo3

![GoPiGo3](https://gopigo3.readthedocs.io/en/master/_images/gpg3_and_logo.jpg)
写真は[公式ページ](https://gopigo3.readthedocs.io/en/master/)より
#■きっかけ
興味があってRaspberry Piを買ったはいいものの、電気系が弱くて全く使えない状態でした。
ソフトウエア関係の仕事なので、UNIXサーバに触れることはありますが、lsやcp程度の知識しかありません。
たまたま、PlayStation3のコントローラーで操作するロボットを見る機会があり、自分でも作れるキットがないか探していたところ、これに行き着きました。

見つけた動画
[GoPiGo Example: PS3 Controller (by youTube)](
https://www.youtube.com/watch?v=_Jhw79j3BDw)
これがやりたかった!

#■商品の特徴
Dexter社は米ワシントンにある教育、研究者、愛好家向けのロボットを制作しています。
(GoPiGoはKick

元記事を表示

AtCoder Beginner Contest 145 参戦記

# AtCoder Beginner Contest 145 参戦記

## A – Circle

1分で突破. 書くだけ.

“`python
r = int(input())

print(r * r)
“`

## B – Echo

3分半で突破. 長さが偶数であることを確認することを忘れなければいいだけ.

“`python
from sys import exit

N = int(input())
S = input()

if N % 2 == 1:
print(‘No’)
exit()

if S[:N // 2] == S[N // 2:]:
print(‘Yes’)
else:
print(‘No’)
“`

## C – Average Length

8分で突破. すべての組み合わせの距離の合計を平均を取ればいいのかなって思って書いたら入力例が通ったので提出したら AC 出たけど、解説を読むとまぐれで通っただけかってなった.

“`python
from math import sqrt

N = int(input

元記事を表示

AtCoder 第二回全国統一プログラミング王決定戦予選 参戦記

# AtCoder 第二回全国統一プログラミング王決定戦予選 参戦記

## A – Sum of Two Integers

2分で突破. 書くだけ. ARC の A 問題ってこんなに簡単だっけかと混乱した.

“`python
N = int(input())

print((N – 1) // 2)
“`

## B – Counting of Trees

68分半で突破. WA 6個. WA2個が中々消えずに WA を重ねてしまった. その2個は0が複数あるやつだった…….

“`python
from sys import exit

N = int(input())
D = list(map(int, input().split()))

if D[0] != 0:
print(0)
exit()

c = {}
for i in D:
if i in c:
c[i] += 1
else:
c[i] = 1

if c[0] != 1:
print(0)
exit()

result =

元記事を表示

Flask入門その1:まずはローカルで動かしてみる&配布用に実行ファイルを作ってみる

# 環境
PC : Mac
開発環境 : Visual Studio Code

# まずはローカルでhello worldを動かす
flaskをインストール

“`
pip install flask
“`

実行

“`python
from flask import Flask
app = Flask(__name__)

@app.route(‘/’)
def hello_world():
return ”’

hello world



”’

if __name__ == ‘__main__’:
app.run()
“`

ブラウザで確認
[http://127.0.0.1:5000/](http://127.0.0.1:5000/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

【検証】ディープラーニングがあるからといって、競馬で回収率100%を簡単に超えられるわけではない

#さあ、謎解きの始まりだ

元記事:[ディープラーニングさえあれば、競馬で回収率100%を超えられる](https://qiita.com/yossymura/items/334a8f3ef85bff081913)

# まずは動かしてみる
早速プログラムを購入して動かしてみます。
説明にも書かれてある通り、基本的にはコピペで動作しましたが、以下2箇所はそのままでは動かなかったので、こちらで修正しました。

– 日付データのパースをしているところ
– 学習・推論に利用する特徴のカラム名

ランダム要素を含むため全く同じとはなりませんが、グラフも概ね同じような動きになったので、再現したようです。
記事に書いてあるような、**”3着指数が60以上、かつオッズが高すぎない一部の範囲(55〜60あたり)”**を購入するようにすると、僕の手元でも100%を超えました。
レース数・レコード数が増えているのは先週(エリザベス女王杯の週)の分かと思われます。

## 僕が実行した結果
| 項目 | 結果 |
|:— | —: |
| 対象レース数(※)| 3672|
|対象

元記事を表示

python でchromedriver使ってスクレイピング

#環境
– macos Sierra ver.10.12.6
– chrome ver.78.0.3904.97

#やりたいこと
スクレイピング対策されているweb記事のスクレイピングの為に
pythonでchrome driverをheadlessで使い、スクレイピングしたい
#前提知識
1. ブラウザのdriverについて
要は、ブラウザをGUIではなく、CUIで扱う為に必要なツールってことみたいです。

2. DNSサーバーとlocalのhostsの関係
私たちがブラウザでドメイン名からアクセスすると、DNSサーバーにその情報を聞いて、IPアドレスとして帰ってきてPCはそれを使ってWEBサイトにアクセスして、ブラウザでサイトが表示されます。
しかし、MacのhostsファイルにドメインとIPアドレスの紐付けを行って置くと、DNSサーバーに接続せずにIPアドレスを取ってくることができます。

参考記事
[SeleniumとGoogle Spreadsheets(4) 「Chrome Driverを使いはじめるまで編](https://bitwave.showcase-tv.com

元記事を表示

Pythonをexeファイルに変換する方法

Pythonで作成したファイルを、Pythonが入っていないPCで実行したい。
そんな悩みを解決するためのツールをシェアさせていただきます。
あくまで、自分用のメモの拡張版なのでクオリティーに関してはご愛嬌でお願いします。
#1.環境構築
#####コマンドプロンプトの場合

“`:コマンドプロンプト
pip install pyinstaller
“`

#####Anacondaプロンプトの場合。

“`:Anacondaプロンプト
conda install pyinstaller
“`

#2.実行

“`:プロンプト
pyinstaller [ファイル名].py –onefile
“`

#注意点

– 最後のオプションにある`–onefile`の入力を省くとdist内のファイルが複数必要になるので移動がめんどくさくなります。
– inputなどのコマンドプロンプトで入力を求めるものなどは、できないので注意してください。

元記事を表示

joinがいまいち分からん

ある有料サイトに登録してPythonを進めてるけど
まさかの何いってるか分からんから

分からん単語?を検索して
他のページで理解して戻ってくるという遠回な勉強が始まりました‥
なぜサイトでは説明してくれていないのかイライラ!!!とかはなくて、
しないといけないことを順番に提示してくれているだけでもありがたいw

で、

元は
def concat(*args, sep=”/”):
return sep.join(args)

どっからjoin出てきた??
ってないいてjoinを検索してみると

test = [‘ab’, ‘c’, ‘de’]
result = ”
for x in test:
result += x
print(result)
#abcde

が出てきた。
いきなりなんで
result = ”
でてきた?
ほんでなんで”消えた???

え??joinどころちゃうw
なにこれ泣きそう

元記事を表示

強化学習12 windows版anacondaを使ってみる。

windows版anacondaの補足です。
anacondaは、いろいろなところに説明があるので、それを参考にしてください。

まず、jupyter notebookのインストールです。
最初から入っているjupyterだと、新しく作ったchainer環境では使えません。

“`bash
conda activate chainer
pip install jupyter
“`
cupy、cudnn周りはインストール大変でした。
ばからしいけれど、VMwareなどで動かした方がよさそう。
jupyter notebookで実行する限りは順調でした。
xvfb freeglut3-dev ffmpegはいらない?

魔改造するchainerrlのファイルは、
userfolder\.conda\envs\chainer\Lib\site-packages\chainerrl\experiments\train_agent.py
でした。

chaineruiは無事に動きましたが、それ以外の再生は全滅でした。
機械学習系は、windowsベースではないのかな。

こちらを参考にしまし

元記事を表示

【pythonocc】jupyter notebook上でCADを使ってみた

# pythonでCADで作ったファイルをいじいじしたい!
.pyファイルをCADのソフトにインポートして機能を拡張させたりするのは聞いたことありますが、jupyter notebook上で動かせるものはあるのかなと思って調べてみました。

#先に結論
あった。cad界隈のhello worldしてみた。
![cad.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178972/8efaa5ca-d608-7f8e-5801-be5ceb9811fb.gif)

# pythonoccとは
pythonoccとは、python用の3D CADパッケージ。
jupyter notebook上で動かせちゃう!!

gitub: https://github.com/tpaviot/pythonocc

# インストール
githubでは以下でインストールできると書いてありました。

“`terminal
conda install -c conda-forge -c dlr-sc -c pythonocc

元記事を表示

IoT プラットフォーム「リモッテ」でステーションを登録してみた

### 準備
[前回の投稿](https://qiita.com/remotte_jp/items/39278287097a7a25432d “IoT プラットフォーム「リモッテ」をインストールしてみた”)で、Windows 上に「リモッテ・ステーション」をインストールした。タスクトレイに下記の赤枠で囲ったオレンジ色のアイコンが表示されていれば準備オッケー。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491154/a3429741-15f4-8310-bc16-6a3a463f4514.png)
もし表示されていないなら Windows メニューを開き、「Remotte Station」フォルダ内の「サービスの起動と停止」をクリックし、サービスを開始する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491154/e44ccd88-fc42-d726-1599-185ee648034

元記事を表示

Pythonで使われる演算子

# はじめに
ここではPython初心者向けに、「演算子」について解説します。
Python3系の使用を前提とします。

# 算術演算子

四則演算を行うための演算子です。
演算子の前後には半角スペースを入れることが多いです。

“`python:operator_1.py
int_1 = 1 + 1 # 足し算
print(int_1)
int_2 = 2 – 1 # 引き算
print(int_2)
int_3 = 2 * 3 # 掛け算
print(int_3)
int_4 = 6 / 3 # 割り算(割り切れる場合でも、計算結果は浮動小数点数型になる)
print(int_4)
int_5 = 2 ** 3 # 累乗
print(int_5)
int_6 = 5 // 2 # 割り算の商
print(int_6)
int_7 = 5 % 2 # 割り算の余り
print(int_7)
“`

文字列同士を足し算すると、文字列の結合になります。

“`python:operator_2.py
str_1 = ‘Hello, ‘
str_2 = ‘World!’
print(

元記事を表示

【Python】非同期プログラミング,イベントループについて学ぶ

# 本稿について
先に断っておきますが,「非同期プログラミングとは,」なんて大それたものを語ることは,正直今できません.
本稿では非同期プログラミングの要素の1つである協調的マルチタスク,Pythonの`async`,イベントループについて学んだことを記述します.

# 協調的マルチタスクと非同期I/O
協調的マルチタスクは非同期プログラミングの中心となる要素であり,思想みたいなところ.

※ここでいう非同期プログラミングはシステムのスケジューリング機能によってコンテキストスイッチが行われず,プログラム内部でスイッチすること

コンピュータがマルチタスクを行う上で,OSのコンテキストスイッチを利用せず,
各プロセスが待機状態に入ると,自発的にプロセス自身が制御を解放して
同時に実行されている多数の他の処理に制御権を渡します.(**協調的**という意味に匹敵)
ここでいう制御とはプロセスを中断,再開したり,リソースを確保や解放したりすることを指します.

円滑にマルチタスクを行うためには,すべてのプロセスが協調的である必要があるようです.

### アプリケーションレベルの協調的マル

元記事を表示

OpenCVのフレームを指定したreadの高速化

#1.はじめに
OpenCVでmp4を使う際にsetでフレーム位置を指定しreadするのが遅い現象がありました。
動画を一定間隔(0.5秒ごと)で取得する処理に時間がかかり過ぎていたため、その対策内容を記載します。
(他により良い手段があればコメント欄で教えて頂けると嬉しいです。)

#2.読者対象
・動画データを1フレームより大きい間隔で利用する方。(1フレームごとであればreadのみが適切)

#3.結論
不要なフレームはgrabで飛ばし、必要なフレームをreadで取得します。

36%の時間短縮が可能でした。

| 条件| 処理時間(秒) |
|:—————–|:——————|
| set + read|10.131|
| grab + read|6.491 |

#4.検証
検証対象:
 [Luis Fonsi – Despacito ft. Daddy Yankee](https://www.youtube.com/watch?v=kJQP7kiw5Fk)
 720p 30fps
 動画時間 4分41秒

OpenCV::Vid

元記事を表示

Python_Webbrowserを使ってWebサイトを操作

##やりたいこと
Pythonのwebbrowserを使って、Webサイトに自動ログインしたいと思い
色々試行錯誤したので備忘録として残していきます。

##環境
macOS high sierra 10.13.6
python Python 3.7.3

###ブラウザを開く

“`python:web_open.py
import webbrowser
webbrowser.open(“開きたいURL”)
“`
無事開きました。
ブラウザを指定したい場合はget()で指定するらしいです。

###ログインする
キーボード入力をそのまま入力したいと思いpyautoguiを使用。

“`python:web_login1.py
import webbrowser
import pyautogui
import time

#ブラウザを開く
webbrowser.open(“開きたいURL”)
#念の為スリープ
time.sleep(1)

#ログインIDとパスワードを格納
mail_address = “hoge”
passwd = “hoge”

#ログインIDを入力するボック

元記事を表示

Pythonって可読性が低くない?

## Pythonは見づらい
最近、JavaとかGolangを触ったのちに、解析や機械学習系のPythonコードを漁っていて思うのですが、

**Pythonって見づらくないですか?**

Pythonの歴が浅いので、もしかしたら見やすいのかもしれませんが、私には少なくとも見づらいです。

何が見づらいって、

**引数や戻り値に型がない**

部分ですよ。これで結局何が入った変数なのかがわかりません。
命名がアレな引数や戻り値をみると、もう絶望して、正直読む気が失せます。

## 個人的にこうしたい
幸い、[型ヒント](https://www.python.org/dev/peps/pep-0484/)というものがPython3.5から導入されているので、使っていきたい。いきたくない?

具体的には下記のようにしていきたいです。突発に思いついた例で、ぶっちゃけいけてないが、雰囲気だけ感じ取ってほしいです。

**Before**

“`python

def create_article(article_id, title):
article = {“id”: artic

元記事を表示

Pythonで学習したこと

#progateでpythonを学習
##学習コースⅠ
出力はprint()

()の中に文字列なら””、数値ならクォーテーションなし
変数は 変数名 = “変数の値” ex)name = “しまじろう”

**名をつける時のルール**
頭文字を数字にしない
2語以上なら_をつける
英単語でつける

**変数を使うメリット*
データの中身が何を表してるか明確になる
同じデータを繰り返し使える
値の変更が一箇所で済む

すでにある変数に数値を足して代入するには
変数名 = 変数名 + 数値
演算子=で省略できる
+で文字の連結もできる

**データ型**
様々な種類のデータ型が存在する
ex)文字列型、数値型
データ型が違うと異なる動作をする
データ型を変換することを**型変換**という
数値型を文字列型に変換するには**「str」**を用いる
反対に、文字列型を数値型に変換したい場合には**「int」**を用いる

**条件分岐**
ある条件に当てはまるかどうかによって処理を分けること
**if文**
ifの後に条件式を指定し、その条件が成り立つときに実行する処理を次の行に書く
if

元記事を表示

計算ドリル python(機能拡張)

今回は前回書いた「[計算ドリル python](https://qiita.com/banana19980702/items/d8ff4c1aaf5cbe8afc2a)」の機能を拡張していきます。付け加える機能は以下の通りです。 
#拡張機能
・問題番号の追加
・問題数を100問に増加
***
まずは問題番号の追加をしてきます。ここでコードが煩雑になるので関数という形で問題と答えを出力する処理をまとめていきます。コードは以下の通りです。

##問題番号追加コード

“`python:問題の出力関数
def question_out_txt(): #問題を出力する関数
for cnt in range(10):
num1 = random.randint(1,9)
num2 = random.randint(1,9)
if (cnt + 1) / 10 < 1: #問題番号1桁の場合 question = "(" + str(cnt + 1) + ") " + \

元記事を表示

OTHERカテゴリの最新記事