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

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

アプリ制作 herokuでのslug sizeについて

##この記事について
プログラミング初学者の私が初めてherokuにデプロイする際につまずいてしまったところを共有していけたらと思います。少しでも参考になれば幸いです。

##herokuでのデプロイ
今回私はFlaskを使ったアプリの開発を行いherokuへデプロイしようとしました。しかし最初から上手くいくはずもなくエラーがバンバン出てきました。
その中で一番出てきたエラーが
`Compiled slug size: 504.7M is too large (max is 500M).`
herokuにデプロイできる最大容量が500MB(無料版)に対して実際にデプロイしようとしたものが__504.7MBで容量オーバー__ですよというエラー。
あと4MBぐらいならrequirements.txtでモジュールを違うバージョンに書き換えて調整すれば500MBきるかなと思っていたんですが、デプロイしようとするたびに容量オーバーのエラーが出てしまっていました。
##原因
最初はモデルに読み込ませたデータ量が大きすぎたのかなと思いデータ量を少なくしてモデルを再構築しデプロイしてみましたが__結

元記事を表示

Python Anacondaでの開発環境 【VScode】

皆さん、記事主モノ([My Twitter](https://twitter.com/El4lQmonosiwnf) へ)です。
今回も学んだことについて、一つ一つアウトプットを兼ねて、Pythonに関する知識や理解を皆さんと共有できたらと思います。

さて、今回やっていくことは、実際にAnacondaを動かして開発環境を整えたり、パッケージの使いかたをアウトプットしていきます。

#1,Anacondaを起動してみよう
##1-1, 開発環境を整えていく
まずは、インストールしたAnaconda Navigatorを起動していきましょう。
下記の画像のように選択した後、二枚目の画像のように表示されれば起動は完了です。

※一枚目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927177/a6ae6a13-3bf8-319d-8246-ec63758aaf6f.png)
※二枚目
![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

Python 学習環境を構築をする方法【Anaconda】

今回初記事となります。
記事主モノ([My Twitterへ](https://twitter.com/El4lQmonosiwnf))が学んだことについて、一つ一つアウトプットを兼ねて、Pythonに関する知識や理解を皆さんと共有できたらと思います。
某アニメの青タヌキのような暖かい目で見ていただけたら幸いです。

この記事ではWindows10パソコンにPython環境をインストールして使えるようにする方法について紹介していきます。
(間違い・こうした方がいい等ございましたら、ご指摘いただけたらと思います。)

以降pythonという言葉は、基本的にはpyhton3系を指します

#Pythonのインストールのやり方(Anaconda)
##Python初心者の方向け
まずAnacondaは、Pythonのディストリビューション(distribution)です。ディストリビューションとはコンパイルしてある設定済みのソフトウェアの集合体を指します。

WindowsでPythonを使うにはAnacondaという統合開発環境をインストールしていきます。Anaconda自体はただの箱であ

元記事を表示

Google Colaboratoryのファイル扱いが少し気持ち悪い

# 結論
同名のファイルをアップロードした際に、Google Colaboratoryランタイム内のストレージでファイル名が変更されます。変更後のファイル名の取得がめんどうくさくて困った。

# ファイル読み書き101
こちらを参照のこと
https://colab.research.google.com/notebooks/io.ipynb?hl=ja

参照先では以下について扱われています。(本記事執筆時点2021/2月確認)

* ファイルのアップロード・ダウンロード
* Googleドライブ連携
* Googleスプレッドシート(pandas dataframeへの変換付き)
* Google Cloud Storage (GCS)

# ファイルのアップロードの動作が少し気持ち悪い
以下のコードでファイルをアップロードすることを考えます。

“`py
from google.colab import files
uploaded = files.upload()
filename = list(uploaded.keys())[0] # only single file s

元記事を表示

ROSの勉強 第7弾:基礎的なアクションの利用

# #プログラミング ROS< アクションの利用 >

##はじめに
1つの参考書に沿って,ROS(Robot Operating System)を難なく扱えるようになることが目的である.その第7弾として,基礎的なアクションの利用を扱う.

##環境
#####仮想環境
|||
|:-:|:–|
|ソフト|VMware Workstation 15|
|実装RAM|2 GB|
|OS|Ubuntu 64 ビット|
|isoファイル|ubuntu-mate-20.04.1-desktop-amd64.iso|

#####コンピュータ
|||
|:-:|:–|
|デバイス|MSI|
|プロセッサ|Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50GHz|
|実装RAM|8.00 GB (7.89 GB 使用可能)|
|OS|Windows (Windows 10 Home, バージョン:1909)|

#####ROS
|||
|:-:|:–|
|Distribution|noetic|
|プログラミング言語|Python 3.8.5|

元記事を表示

植物の水やりをIoTしてみた その1:土壌水分量センサーとArduino

### いつ水をあげるべきか
植物の水やりって、面倒ですよね。
毎日ちゃんと水をあげなければ枯れるし、ものによっては水をやり過ぎてもよろしくなかったりとまあ実に面倒なことこの上ない。
なので、ものぐさな私は植物の水やりの面倒臭さをIoTで解消することはできないかと思い立つのである。

いつ、どれだけの量の水をあげるべきか、植物を育てる全てはここにあるといっても過言ではない(過言)。

百歩譲って毎日決まった時間に水やりをするのはいいのだが、あまりにも水を注ぎ過ぎてトレーから水が溢れ出てしまうなどということもしばしば。
土が乾いたら水をあげればいいというただそれだけのことが、「土がどれだけ乾燥しているのか」ということすら我々人間には知覚することができないために、できないのである。

だから、まずは「どれだけ土が乾燥しているか」を感知するセンサーを使ってみるのだ。

### 土壌水分センサー
こちらが今回使用する土壌水分センサー、正式名称を「静電容量式土壌水分センサー」などというらしい。
![IMG_0027.jpg](https://qiita-image-store.s3.ap-nor

元記事を表示

型・ポインタ・参照 覚書?

※この文章はベータ版です。

# C/C++

C/C++は、型ありき(type first)で設計されています。
型は前置です。

変数宣言時に必ず変数と型を紐付けし、変数の初期化時に型に合わせて、メモリを
確保します。

Cは、設計段階で、型をつけた変数を定義して、変数間で値をコピーして渡す「値渡し」が
先ずあり、「値渡し」だけでは常に値のコピーが発生し、パフォーマンスがでないので、値が
ある場所(アドレス)を指し、値の直接操作の可能な「ポインタ」が導入された、感じがします。

Cはポインタに独自の型(ポインタ型)を用意せず、型に対して\*を後置することでポインタ型を
表現しています。
(ポインタ変数は、アドレスの入れ物なので、ポインタ変数間で「値渡し」できます。
ポインタ変数に「\*」を付けることで、ポインタ変数に格納したアドレスにある値を直接操作
できます。)
(ポインタはアドレスの入れ物なので、ポインタ自体は格納されているアドレスにある変数の
型の情報を必要とはしていませんが、実装上、ポインタの指すアドレスにある変数の型が
わからないと、その変数内にある値にアクセスできないた

元記事を表示

MACDによるbitflyer取引シミュレータ

#MACDによる取引シュミレータ

##参考ページ
https://www.moneypartners.co.jp/support/tech/macd.html

##前準備

“`bash:console
pip install pybitflyer
pip install numpy
“`

##ソースコード

“`python:test_macd.py
# -*- coding: utf-8 -*-

##3-clause license (“BSD License 2.0”, “Revised BSD License”, “New BSD License”, or “Modified BSD License”)
##修正BSDライセンス・三条項BSDライセンス

##Copyright (c) 2021, avantia
##All rights reserved.

##Redistribution and use in source and binary forms, with or without
##modification, are permitted prov

元記事を表示

SMILES表データから様々なデータを一発で生成する

# 時間がない人向け
コピペで使えて、SMILESのテーブルデータから色々なデータを一発で生成するpythonクラスを書きました。
MOLオブジェクト、RDKit記述子、原子位置情報(deepchemで言うところの[SmilesToImages](https://deepchem.readthedocs.io/en/latest/api_reference/featurizers.html#smilestoimage))に対応しています。
他の記述子とかも同じ要領で書けるはずです。
個人的な備忘録なのでツッコミどころ多くても許してください。

# はじめに

ケモインフォマティクスは化合物の情報とコンピュータを用いて様々な課題を解決しようとする学問領域です。
近年の機械学習などの手法の発展により、化合物情報を用いて物性を高度に予測できるようになってきました。
最近ではAlphaFold2の躍進などが有名[^1]。
[^1]: [第43回分子生物学会年会フォーラム2F-11「インシリコ創薬を支える最先端情報科学」から抜粋したAlphaFold2の話](https://www.slid

元記事を表示

【bit全探索】数学一切できない文系Fラン卒の俺がABC190のC問題を解説する

#ぼやき

最近はやりのAtCoder、僕も初めてみたんです。
それでね、先週ABC191から初参戦してみたわけですよ。
もうね無理、文章の理解すらできない。
ギリギリ頑張って調べながらABだけできたけど、それ以降は何聞かれているかもわからない。
それで、もう初めて1回目で限界を感じてしまい、それでもあきらめきれず過去問に手を出し始めるわけですよ。
やっぱりABC190のCが解けない(泣
解説動画見たらC++とかいう古の言語で書かれててなにがかいてあるかもよーわからんしもう俺無理だ数学の教養ない俺は一生灰色止まりの底辺プログラマにしかなれないんだよ…
せめてpythonとか初心者がプログラミング入門で触りやすいわかりやすい奴で書いてよぉ…

そんな人いっぱいいるでしょ。いるよね?
僕みたいに中学からスポーツだけやってて算数と英語は昔から2ばっかりで受験戦争も一度も経験せず勉強さぼりにさぼって推薦で文系Fラン大学を卒業してIT就職した人いるよね。
いや、ここまで教養底辺の人はいないと思う。
だって俺が数学で最後にやった記憶があるの解の公式とかだよ?いや、ぎりぎりlogは触った気が

元記事を表示

頑張らずにM1チップのまっさらMacでFlask環境を作ってみた

私のMacBookはまっさらなので、まずHomebrewをインストール。
Rosetta2が入っていればx86_64と同じように動く。便利。
[Homebrew](https://brew.sh/index_ja)のページに記載されているスクリプトを実行。

“`
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`
これだけで動いた。
あとはHomebrewに指示された通りのコマンドを打つ。

“`
$ echo ‘eval $(/opt/homebrew/bin/brew shellenv)’ >> /Users/midori/.bash_profile
$ eval $(/opt/homebrew/bin/brew shellenv)
“`
前者のコマンドで次回シェルを開くときに自動的に処理が行われるようして
後者のコマンドで今開いているシェルに対して処理を行う、らしい。[参考](https://qiita.com/m-tma

元記事を表示

how install python version 3.9.0 in macOS Big Sur 11.2

#I bought new mac book pro and set up my env.

But pyenv install 3.9.0 is not working…

#新しいMacBook Proを購入してセットアップ!
しかし、pyenv install 3.9.0 がerror。lol

“`
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.0.tar.xz…
-> https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz
Installing Python-3.9.0…
python-build: use readline from homebrew

BUILD FAILED (OS X 11.2 using python-build 20180424)

Inspect or clean up the working tr

元記事を表示

Janomeで固有名詞の登場順を得る。

“`Python
text=”長い文章”
zyogaiList=[“名詞,代名詞”,”名詞,非自立”,”名詞,数”]#除外
cf = [UnicodeNormalizeCharFilter()]#前処理フィルタ
tf = [CompoundNounFilter(),POSKeepFilter([“品詞”]),POSStopFilter(zyogaiList),TokenCountFilter(att=’base_form’)] #後処理フィルタ準備 att=”base_form”で品詞活用をまとめて基本形のみにする
a = Analyzer(char_filters =cf,token_filters=tf)#解析器生成
results = a.analyze(text)#解析
print(syurui,”登場順”)
s =sorted(results, key=lambda x:x[1],reverse=True)#結果並べ替え
for i,wc in enumerate(s):
if i >= 50:break

元記事を表示

Pythonの組み込み関数とライブラリ

随時更新。

# 組み込み関数
## input
キーボード入力を待つ。

“`python
>>> while True:
… word = input(‘Enter:’)
… if word:
… print(word)
… break

Enter:Hello!
Hello!
“`

# 標準ライブラリ
## random
乱数を生成する。

“`python
>>> import random
>>> random.random()
0.5319541784596332
>>> random.random()
0.6018686138896924
>>> random.random()
0.7975672735712838
“`

## datetime
日付を操作する。

“`python
>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2021, 2, 7, 16, 59, 52, 5

元記事を表示

LightGBMの出力結果を解析したい!(SHAPのススメ)

#1.はじめに
SIGNATEで「[日本取引所グループ ファンダメンタルズ分析チャレンジ](https://signate.jp/competitions/423)」というコンペが開催されています。私も参加していますが、その中で出てくる知識に関して基礎部分をまとめよう!という動機で書いた記事の第2弾です。
コンペのチュートリアルでは、「XGBoost」での予測結果に関しての根拠説明として本記事で紹介する「SHAP」を使用していますが、本記事では現在一番メジャーなLightGBMを使用してこのSHAPを紹介していきます。

* 動作環境
* OS : Windows10 pro
* Python : 3.8.3 // Miniconda 4.9.1
* LightGBM: 3.1.1
* SHAP : 0.38.1
* jupyter notebook

#2.LightGBMでとりあえず学習して、特徴量重要度を図示する

今回は、回帰分析を例として行うことにする。
サンプルデータはscikit-learnに添付されているボストンの住宅価格データを使用する。
LightGBM

元記事を表示

GLMの理解を頭で考える

悩みに悩んだ人はおおいいでしょう。  
私も間違いなくその一人です。  
しかしそれは無駄ではありません。  

今までsklearnなどで線形回帰やロジステック回帰などに触れて、勉強を始めている場合。

結構それだけでも難しいのですが、次の山場に差し掛かります。

「一般化線形化モデル」。。。

何をしているか全然わからなくなります。
実は最小二乗法を用いた線形モデルも、ロジスッテック回帰も一般化線形モデルの一つの形なんです。

いつもグラフにできて勾配は最小二乗法で。。。
はイメージが掴みやすく、理解が優しい。

なぜ、確率分布が回帰に必要なのかを理解しないで勉強を進めていくと大きな穴にはまります。

まず学習に取り掛かる以前に必ずやらなければいけないのことがあります。

「確率分布」で事象を説明するということを理解することです。
散布図を書いてそれに合わせたように線を描いていくことは回帰ではありません。

*  様々な確率分布をscipyで作成してそれぞれのパラメーターをいじって確率分布の変化を確認する。
*  その際、現実世界の事象をイメージすることが大事です。

次に大事なこ

元記事を表示

puckel/docker-airflowを動くようにして延命させる

# tl:dr

* 2021年2月現在、[puckel/docker-airflow](https://github.com/puckel/docker-airflow) は事実上のdeprecated
* すぐに [apache/airflow](https://hub.docker.com/r/apache/airflow) に移行できない人も多いだろうからとりあえず動くようにして延命させたい
* **Dockerfileに `pip install sqlalchemy==1.3.15` を足す**

# はじめに

2021年2月現在、新規に [Airflow](https://airflow.apache.org/) をDocker上で運用するなら、公式が提供している [apache/airflow](https://hub.docker.com/r/apache/airflow) のお世話になるのがよいかと思います。
しかし、数年前から運用している方の中には puckel氏の [puckel/docker-airflow](https://github.com/

元記事を表示

KafkaをローカルのDocker環境で、さくっと動かしてみました  第6回

## 概要
Kafkaに魅せられて、とりあえず手元のマシンで動かしてみましょうか、、、と、インフラしか知らないSEがMacBookProを新たに購入し、Qiita等にアップされている諸先輩方の記事を参考にさせていただき、動作確認したまでの手順を数回に分け記載しています。
なお、Kafkaの概要につきましたは、[こちらの記事](https://qiita.com/sigmalist/items/5a26ab519cbdf1e07af3) を参照ください。

第6回は、[第5回](https://qiita.com/turupon/items/bd27834a42dda865469d)でConsumer上のPythonプログラムでtopic-11のデータをターミナル出力するものでしたが、今回はそのプログラムを拡張することにより、そのデータをS3に書き出すことを確認します。
なお、S3への書き出しには Kafka S3 Connector(sink) を使用せず、Pythonプログラム上 で boto3 を使用することにより確認します。
簡単に絵を描くとこんな感じになります。
![Kafk

元記事を表示

KafkaをローカルのDocker環境で、さくっと動かしてみました  第5回

## 概要
Kafkaに魅せられて、とりあえず手元のマシンで動かしてみましょうか、、、と、インフラしか知らないSEがMacBookProを新たに購入し、Qiita等にアップされている諸先輩方の記事を参考にさせていただき、動作確認したまでの手順を数回に分け記載しています。
なお、Kafkaの概要につきましたは、[こちらの記事](https://qiita.com/sigmalist/items/5a26ab519cbdf1e07af3) を参照ください。

第5回は、[第4回](https://qiita.com/turupon/items/540be949ead3f4065553)で抽出したデータを取得するために、新たに ConsumerとしてPythonプログラムを稼働させるコンテナを作成し、そのConsumerでデータの受け取りを確認します。
簡単に絵を描くとこんな感じになります。
![Kafka-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544022/1350a5c3-139f-d993

元記事を表示

KafkaをローカルのDocker環境で、さくっと動かしてみました  第4回

## 概要
Kafkaに魅せられて、とりあえず手元のマシンで動かしてみましょうか、、、と、インフラしか知らないSEがMacBookProを新たに購入し、Qiita等にアップされている諸先輩方の記事を参考にさせていただき、動作確認したまでの手順を数回に分け記載しています。
なお、Kafkaの概要につきましたは、[こちらの記事](https://qiita.com/sigmalist/items/5a26ab519cbdf1e07af3) を参照ください。

第4回は、[第3回](https://qiita.com/turupon/items/60ac1ec68fe8148b9201)をベースに Kafka の KSQL を使用し、Producer から送られてくるデータを とある条件で抽出してみます。
簡単に絵を描くとこんな感じになります。
![Kafka-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544022/bd13da9f-60a9-8cff-2b6a-88c12be3d15a.png)

元記事を表示

OTHERカテゴリの最新記事