Python関連のことを調べてみた2020年09月23日

Python関連のことを調べてみた2020年09月23日

cronでGithubにPushするプロセスを自動化する

#やったこと

Pythonとcrontabを使って、データファイル(pklフォーマット)を一週間に一回(土曜日の午後7時)に更新されるようにしました。

毎週更新されるデータをGithubに自動的にPushしたく、同じくcrontabを使ってやってみた。

#環境

– Linux Mint 19
– Python 3.6.9
– git 2.17.1

#GithubでSSH接続する
ssh接続する方法はたくさんネットに上がっているので割愛します。
(参考: [GitHubにssh接続できるようにする](https://qiita.com/0ta2/items/25c27d447378b13a1ac3))

#GITコマンドでプッシュしてみる
ssh接続が出来たら、gitコマンドでPushしてみる。

アップしたいデータファイルはplayers_data.pklというpythonのpickleというモジュールを使用したフォーマットです。

“`bash
git add players_data.pkl
git commit -m “最初のコミット”
git remote add

元記事を表示

【音声解析】xeno-cantoで鳥の鳴き声データを集める

## [xeno-canto](https://www.xeno-canto.org)とは
鳥の鳴き声データベース。jsonで扱える[API](https://www.xeno-canto.org/explore/api)がある。
今回はPythonを使って日本におけるFulica属(オオバン属)の鳴き声を一括収集した。

## ソースコード
“`python
import requests
import json
import urllib

url = “https://www.xeno-canto.org/api/2/recordings?query=gen:Fulica+cnt:japan”

# json取得(requests.get)

response = requests.get(url)
jsonData = response.json()[“recordings”]

# ダウンロード部(ファイル名は{id}.mp3)

for data in jsonData:
url = (“http:”+data[“file”])
title = dat

元記事を表示

Codeforces Round #671 (Div. 2) バチャ復習(9/22)

#今回の成績

![スクリーンショット 2020-09-22 12.58.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331393/0957d36f-5d54-5007-8580-874d70b3d381.png)

#今回の感想

焦りで考察がグダグダになってしまい勿体ない回でした。E問題は発想ゲーで思いついたのですが、十分な時間を確保できませんでした。

やはり**考察の確度や勘がまだまだ悪い**ので、より多くの問題を解いて精緻にする他ないのかなと思っています。

#[A問題](https://codeforces.com/contest/1419/problem/A)

(以下では、先攻のRazeをR,後攻のBreachをBとします。)

**最後に残る数に注目**します。最終的に一つ残った時の数が奇数のときはRの勝ちで、そうでないときはBの勝ちです。このとき、数が奇数個ある場合は最終的に奇数番目の数が残るので、先攻のRは勝利するように奇数を残せばよく、奇数番目に奇数が少

元記事を表示

[備忘録] Tensorflowに関して

#はじめに
これまでTensorflow(Keras)を使ってみて、わかったことを整理しておきたいとと思います。

#1. 仮想環境でのTensorflowの設置
Tensorflowを仮想環境に設置する時、Anacondaのconda命令とPythonのpip命令を使うケースに分けられます。それぞれの特徴について、下記の表に整理します。

| 項目| conda | pip |
|:———–|:————|:————|
| 設置コマンド | conda install -c anaconda tensorflow-gpu |pip install –upgrade tensorflow|
| メリット | CUDA, cuDNNも一緒に自動的に設置される。超便利! | 2020.09時点でTensorflow 2.3
pip install -r requirement.txtが大変便利 |
| デメリット | 2020.09時点でTensorflow 2.1が最新Version.

元記事を表示

気象庁の雨量データをスクレイピングしM5Stackで表示する

## 概要
* 集合住宅では雨の様子が窓からは分からず、エントランスに出てから雨に気づき傘を取りに戻ることが良くあった
* 一部のオフィスビル(30階建て以上)では、エレベーターホールに傘のサインで降水を知らせてくれていた
* ベランダに降水センサーを設置しアラームを通知する方法もあるが、電源確保、センサーの耐久性の面から難しい
* 気象庁の観測データページを、常時起動しているサーバー(Raspberry Pi)でスクレイピングした結果をM5Stackで表示する
https://www.data.jma.go.jp/obd/stats/data/mdrr/pre_rct/alltable/pre1h00.html

![IMG_9811.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701445/8fc7752e-d1da-cd53-60bf-ccce4ffe6e33.jpeg)

## 用意するもの
* Raspberry Pi3 Model B (4でもおそらく大丈夫)
* Raspberry

元記事を表示

anacondaでmysql-connector-pythonがインストール出来ない対処

#状況
pythonを学習するにあたりanacondaを使用しているが、データベースを使用するためにインストールしようとしたが、エラーが出た

“`
% conda install mysql-connector-python
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.

元記事を表示

Django HTMLのテンプレート上で型式を文字列にする

ずっと悩んでいた、辞書型でテンプレートに引き渡した者同士で比較させていましたがうまくいってなかったのですが、
やっと解決しました。

解決させた方法が、文字列型に変換し比較させることで解決できました。

“`python:schedule.html

{% for staff in user_list %}

{{ staff.last_name }} {{ staff.first_name }}


{% for item in object_list %}
{% if value|stringformat:item.user == value|stringformat:staff.username %} ###ここで文字列に変換

元記事を表示

オススメゲーム検索をYoutubeDataAPIv3とfastTextで作ったら、それまで知らなかった面白そうなゲームがザクザク見つかった話

Youtube上の実況動画を収集してfastTextで分散表現を作成し、ユーザの好みに沿ったオススメゲーム検索ができるサービスを作った話をします。

[あなたが好きそうなゲームを探せるサービス
『ゲームコンシェル.AI』](https://games.youmight.love/)

## なぜ作ろうと思ったか
普通のネット検索だと、次やりたいゲームを探すのがしんどかったから。

そもそも、ネット検索で能動的に未知のコンテンツを見つけるのは難しい。『スプラトゥーン2』という言葉を知らない人が『スプラトゥーン2』を見つけ出すのはかなり大変。

まぁ、「新作ランキング」とかで検索すれば知らない作品を見つけること自体は可能っちゃ可能です。けどその場合、たくさんの未知の作品の中から自分がやりたいゲームを見つけ出す必要があります。それぞれの作品の概要を調べ、それぞれ比較して一番面白そうなものを選ぶ・・・。考えただけで相当面倒です。※実際やったら面倒すぎて普通に心が折れました。

もっと簡単に、もっと素早く、自分が次にやりたいゲームを探せる方法があったらいいなと思ったので、個人開発で作りました。

元記事を表示

GAE(Python3) Cloud NDBを使用して登録・更新・取得を行う。

# 今回の目的
GAE(Python3)でCloud NDBを使用してデータの登録更新・取得を可能にします。
基本的に[githubのサンプル](https://github.com/GoogleCloudPlatform/python-docs-samples)を使用します。
今回はpython-docs-samples\appengine\standard_python3\building-an-app\building-an-app-2のモジュールを
ベースに作成しています。

# requirements.txtの修正・インストール
プロジェクト直下のrequirements.txtに以下を追記します。

“`txt:requirements.txt
google-cloud-ndb
“`
追加後、プロジェクト直下のディレクトリで以下コマンドで実行し、google-cloud-ndbをインストールします。

“`sh
pip install -r requirements.txt
“`
これでCloud NDBのインストールが完了です。

# データの登録・更新・取得処

元記事を表示

pythonで共有画面スクショexeアプリ

# はじめに
最近は、授業や会議をzoomなどのWeb会議システムで行うことが増えてきました。しかし、オンライン授業の大きな欠点は、画面で共有される板書がメモする間もなく流れてしまうことです。そんな悩みを解決すべく、**登録した範囲(共有画面部分など)をワンクリックでスクショし、pdfで保存できるexeアプリ**をpythonで作ってみました。(※スクショの許可が出たもののみスクショしましょう)

アプリとその詳細は [GitHub](https://github.com/AoChoco/Release/tree/master/ColLect)にありますので、使ってみてコメント(アドバイスなど)頂けたら嬉しいですー。
\

今回はその作成手順のメモとして、簡略化したフルスクリーンショットアプリを
**1. [

元記事を表示

Windows で USD ことはじめ

USD関連調査中

* [Pixar USD の Windows ビルド方法(2017/9 版)](https://qiita.com/takahito-tejima/items/f820e16869ca4343a600)
* https://github.com/ft-lab/Documents_USD
* https://fereria.github.io/reincarnation_tech/11_Pipeline/01_USD/02_whats_USD/
* [USD で usdz データを読むメモ](https://qiita.com/syoyo/items/609c050d018e934bc47c)
* [USDを使ってみた話](http://monsho.hatenablog.com/entry/2017/10/29/142712)

## Python編

とりあえず Python で USD を扱えるようにするのがよさそう。
NVIDIA のプリビルドを使わせていただきます。

https://developer.nvidia.com/usd

`USD 20.08,

元記事を表示

【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜機械学習を知る編〜

#はじめに

こちらでCoreMLの簡単な実装をしています。
[**【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜実装編〜**](https://qiita.com/kazuki_user/items/2d3e7968772860479b70)

本記事と読み合わせて頂けますと、嬉しいです?

#機械学習(= ML) とは?

機械学習は英語で、「**`Machine Learning`**」
簡単に言うと、以下を指します。

– **『AIが自律的に物事を学ぶための技術**』
– **『機械に大量のデータ・パターン・ルールを学習させることにより、判別や予測をする技術』**

![ML.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683795/0743a74c-de73-09e7-6cbc-99d33900df1f.png)

##ML は、意外と歴史のある AI 分野のひとつ
機械学習はAIという概念の中の、1つの分野です。

1959年、**機械学習

元記事を表示

【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜実装編〜

#はじめに

こちらでCoreMLを学ぶのに必要な、機械学習のイロハについて解説しています。
[**【Swift】機械学習(=ML)とAIとの違いを学んだのち、Core ML を実装してみる。〜機械学習を知る編〜**](https://qiita.com/kazuki_user/items/2d3e7968772860479b70)

本記事と読み合わせて頂けますと、嬉しいです?

#Core ML の実装

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683795/1d789826-5a1d-d2fd-0aea-290a9bde8024.png)

##結果

**約58%**の確率で、[インド象](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%89%E3%82%BE%E3%82%A6)?
全ての無有機物の中から”インド象”だと認識していると考えたら、かなり高確率..!

> インドゾウ(学名:Elephas maxim

元記事を表示

Blender 2.9, Python, 座標で複数メッシュ選択

3*5*5個の球体を作って、一部をz座標条件で選択、色をつける実験です。
前回の延長だからすぐできるんだろうと甘く見ていたら、「メッシュ複数選択」だけでも考える時間が結構かかりました。いろいろ調べて、obj.location.zと言う便利な指定方法があることがわかりました。 3色指定の色合いは 「坊ちゃん団子 / つぼや菓子舗」より。オブジェクトたくさん作って一部を選択するやり方の他にも、一つ作ってそれを複製、の方法もあるはずなので次回はそちらも挑戦の予定。

なお、オブジェクト の選択selection, アクティブ化activation について、参考にしたのは
[オブジェクトのアクティブ化【第 4 回 Python × Blender】](https://tamaki-py.hatenablog.com/entry/2019/05/28/180042)です。ただしblender 2.7向けというのが要注意です。
動画1秒 はtwitterに投稿。[blender 2.9, python. animation 1 sec. 動画1秒] (https://twitter.com/n

元記事を表示

自動生成キャッチコピー【Python】

# 概要

PythonのMecabを使用して、様々な教師データから「っぽい文章」を生成します

## 参考

Python3からMeCabを使う
https://qiita.com/taroc/items/b9afd914432da08dafc8

マルコフ連鎖を使って〇〇っぽい文章を自動生成してみた
https://www.pc-koubou.jp/magazine/4238

マルコフ連鎖を使ってブログの記事を自動生成してみた

# ソース
“`python:main.py
file = ‘教師データ/米津玄師.txt’
roopCnt = 5
size = 2

learnText.createText(fi

元記事を表示

Magics installの対処法

# 解決方法見つからなかった

## Magicsとは

MagicsはECMWFの気象プロットのソフトウェアでpythonとか直接アクセスしたりMetviewを使ってアクセスすることもできる。

## 機能
等圧線、風車、観測、衛星画像、シンボル、テキスト、軸、グラフのプロットをサポートしている。

GRIBのデータや、ガウスグリッド、等間隔グリッド、フィットデータをプロットできる

## インストール方法
“`$ pip install Magics“`
システムの依存関係があるので、Ubuntu 18.04だったらlibmagplus3v5をインストールしてください。
“`$ sudo apt-get install libmagplus3v5“`

ここから、エラーがでる。
コンテナは、ubuntuのこれを使っている
“`gcr.io/deeplearning-platform-release/tf2-cpu.2-3“`

以下のコマンドを打つとエラーが表示される

“`
!python -m Magics selfcheck

Traceback (most

元記事を表示

pd.read_excelのsheet_nameでエクセルのシートが指定できない

エクセルからDataFrameとしてデータを読み込む際に使うread_excel関数だが、
リファレンスに載っているとおりsheet_nameでシート名を指定してもエラーにならないが正しくシートを取得できないことがあった。
(どのように指定しても1番目シートしか取得できなかった)

“`Python
import pandas as pd #version 0.20.0
df = pd.read_excel(input_path, sheet_name=”Sheet2″) #2番目のシートを読み込みたい
print(df) #なぜか1番目のシートの内容が出てくる
“`

どうやら**pandas 0.20以前**の環境ではsheet_nameは機能せずsheetnameで指定するのが正しいらしい(なぜsheet_nameもキーワードとして使えるんだろう…)
ちなみにpandas 0.23ではsheetnameを使用すると警告が表示されるがsheetnameとsheet_name両方機能する。
最新版ではすでにsheetnameキーワードは削除されsheet_nameキーワード

元記事を表示

[python] headless chromeのsend_keysでエラーが出た時の対処法

python seleniumでchromeをheadlessに動かしているとき、send_keysでエラーを吐いたので対処した方法を書きます。

chromeとchromedriver-binaryのバージョンを合わせたのにも関わらずsend_keysでエラーを吐きました。過去バージョンでは動いている記事もあったのですがなぜか動かない。このためだけにchromeのバージョンも下げるのは嫌なのでjavaを呼び出しました。

あくまで一例だと思いますの

“`python:headlessじゃないとき
element = driver.find_element_by_name(“password”)
element.send_keys(“”” password “””)
“`
これはnameタグでsend_keysを指定した方法です。これだとエラーを吐くので以下のようにしました。

“`python:headless時
password = “”” password “””
driver.execute_script(‘document.getElementsByTagName(“

元記事を表示

pandasで2行目をカラム名にしたい

# pandasでのデータ読み込み時に困った
Excelシートを読み込む際に、1行目に邪魔な文字が入っていたので、カラム名が「Unnamed…」ばかりになった。

二行目からデータとして取得するためには、
1. 最初にデータを読み込み
2. データのカラム名を変更
といった処理が必要になりそうで、ダルイ。。

と思っていた矢先、先人の[Qiitaの記事](https://qiita.com/noca/items/966f4c5ae5eee8195fe0)を発見。
以下はその記事からの抜粋。


## 課題
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324917/21317914-5afb-8fd8-8018-61c9d5fd5554.png)

## 解決策
pandasの`skiprows`を使用して最初のいらない箇所をスキップしてExcelファイルを読み込む。

“`python

df = pd.read_excel(excel_file_path, skipro

元記事を表示

[競プロ] 累積和を利用したDPの高速化

競プロ初心者向け。
先日参加したAtcoderにて、DPの計算量を削減する方法を知り、とても感動したのでメモ。

## 問題
[Atcoder ABC 179 D-Leaping Tak](https://atcoder.jp/contests/abc179/tasks/abc179_d)
> 一列に並んだ Nマスから成るマス目があり、マスには左から順番に1,2,…,Nの番号がついています。
このマス目で暮らしている高橋君は、現在マス 1にいて、後述の方法で移動を繰り返してマスNへ行こうとしています。
10以下の整数 Kと、共通部分を持たないK個の区間 [L1,R1],[L2,R2],…,[LK,RK]
が与えられ、これらの区間の和集合をSとします。
ただし、区間 [l,r]は l以上 r以下の整数の集合を表します。

> – マスiにいるとき、Sから整数を 1つ選んで (dとする)、マス i+dに移動する。ただし、マス目の外に出るような移動を行ってはならない。

> 高橋君のために、マスNに行く方法の個数を 998244353で割った余りを求めてください。

## ナイーブな解き方

元記事を表示

OTHERカテゴリの最新記事