Python3関連のことを調べてみた2020年07月13日

Python3関連のことを調べてみた2020年07月13日

ゼロから始めるLeetCode Day85 「6. ZigZag Conversion」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

numpy の dtype変更だけでパフォーマンス改善できた話

## はじめに
numpy の計算効率化に取り組む機会があったのですが、
その中で dtype の重要さを学びました。

個人の備忘録としては勿論、誰かの役に立つといいな〜と思い
書いたものが本記事となります。

【追記】
numpy は、pandas の read_csv で dataframe 化したものに `.values`メソッドを適用して作った numpy.array です。

## パフォーマンス前後比較
ザックリ書くと、

1. サイズにして (1万,400) @ (400,55万) 程度の行列計算を複数個行う
2. それらの積集合を取る

という処理を行う必要があったのですが、 numpy の dtype 変更だけで
以下のようにだいぶ改善できました。(最初はどんだけ酷かったんだよ…というね)

|項目|before|after|
|:—|—:|—:|
|処理時間|70分|10分|
|使用メモリ|100GB超|30GB強|

※ メモリはMacアクティビティモニタの「メモリ」の値より。
(jupyter カーネルが落ちるレベルだったが、余裕で生き残るように

元記事を表示

Catalinaデフォルトのphthonでtkinterが動かない

#Catalinaにデフォルトで入っていたpython3.7でtkinterが動かなかったので対処方法のメモ

以前使っていたmacで動いていたpythonコードを実行すると、下記のエラーがでて、動きませんでした。

“`
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named ‘_tkinter’
“`

tkinterがないと。。。どういうこと???pyenvをいれるのが面倒で、デフォルトで入っていたpython3.7を使っていましたが、調べてもデフォルトで入っているpythonの情報がなく、どうしようもないのでpyenvをいれることにしました。

##1.pip3でインストールしたパッケージを書き出し
“`
$ pip3 freeze > packages.txt
“`

##2.pyenvを入れる

“`
brew install pyenv
“`

##3.zshrcに下記を記入
viでzshrcを

元記事を表示

製薬企業研究者がSeabornについてまとめてみた

# はじめに

ここではSeabornの基本的な利用方法について解説します。
Python3系の使用を想定しています。

# インポート

慣例として、`sns`としてインポートすることが多いです。

“`python:Seaborn_1.py
import seaborn as sns
“`

# Seabornの適用

matplotlibで作成した図に対して、`seaborn.set()`メソッドを用いることで、見た目を変えることができます。

“`python:Seaborn_2.py
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns

sns.set()

x = [1, 2, 3]
y = [3, 1, 2]
plt.title(‘Line-chart’) # グラフタイトル
plt.xlabel(‘X-axis’) # x軸ラベル
plt.ylabel(‘Y-axis’) # y軸ラベル

plt.plot(x, y) # グラフを作成
plt.savefig(‘se

元記事を表示

製薬企業研究者がSciPyについてまとめてみた

# はじめに

SciPyは、科学技術計算を行うためのライブラリです。
ここでは、SciPyでよく使うメソッドなどについて解説します。
Python3系の使用を想定しています。

# インポート

以下のいずれかの方法でライブラリをインポートします。

“`python:SciPy_1.py
import Scipy as sp

from SciPy import モジュール名
“`

# 積分

積分には、`scipy.integrate.quad`が使えます。

“`python:SciPy_2.py
from scipy.integrate import quad

def my_func(x):
return x**2 + 2*X + 3

result, error = integrate.quad(my_func, 0, 10)
“`

# まとめ

ここでは、SciPyでよく使われるメソッドなどについて紹介してきました。
基本的な計算はNumPyでできることが多いですが、少し応用的なことになると、SciPyが必要になります。

# 参考資料・リンク

元記事を表示

【GAS/Python】アイコンのダブルクリックだけでメールを自動送信できるようにしてみた

# あらすじ

定常的なメールの送信作業が発生しており、面倒なので
自動化することにしました。

自動化にあたり、以下要件を満たすものを作ることにしました。

 1.送信トリガをタイマーなどではなく、デスクトップアイコンのクリックにしたい
 2.特定のファイルを自動的に添付したい
 3.メール送信時のみオンラインにし、送信後はすぐにオフラインにしたい

そこで、GAS(Google Apps Script)が便利そうかつ使用経験がないので、
上記要件を満たすツールをGASで作ろうと思いました。

上記3つの要件が本当に実現化なのか、まず最初に検討しました。

## 要件1: 送信トリガをタイマーではなく、デスクトップアイコンなどのクリックにしたい

実際にGASを少し使ってみたり調べたりした限りでは、残念ながらGASの実行トリガは
以下しかないようでした。

 ① スプレッドシートから
 ② 時間主導型
 ③ カレンダーから

※ トリガはGASのエディタより、以下で設定
  編集 -> 現在のプロジェクトのトリガー -> トリガーを追加 

このうち、①スプレッドシートのトリガ設定

元記事を表示

enumの互換性エラーの対処法

# Optunaインストール時に起きたエラーの原因と対処法

環境は以下の通り

– Windows 10 Home
– python 3.6.5
– pip 19.3.1

### Optunaをインストールしようと以下コードを実行したらエラーが出た

“`:実行文
pip install optuna
“`

“`:実行結果
Collecting optuna
Downloading https://files.pythonhosted.org/packages/33/32/266d4afd269e3ecd7fcc595937c1733f65eae6c09c3caea74c0de0b88d78/optuna-1.5.0.tar.gz (200kB)
|████████████████████████████████| 204kB 1.7MB/s
Collecting alembic
Downloading https://files.pythonhosted.org/packages/60/1e/cabc75a189de0fbb2841d097524

元記事を表示

FastAPI Tutorialメモ その1

## はじめに
FastAPI Souce: https://github.com/tiangolo/fastapi
FastAPI Document: https://fastapi.tiangolo.com

Intro & First Step
FastAPIチュートリアルのメモ。
基本的にはFastAPIの公式チュートリアルを参考にしていますが、自身の学習のため一部分を省略したり順番を前後させています。
正しい詳細な情報は公式ドキュメントを参考いただければと思います。

Web & Python 初心者かつ翻訳はGoogleとDeepL頼りのため、間違い等ありましたらご指摘いただけますと幸いです。

## 開発環境
Ubuntu 20.04 LTS
Python 3.8.2
pipenv 2018.11.26

## 目標
1. [FastAPIのインストール](#FastAPIのインストール)
2. [サーバの起動](#サーバの起動)
3. [Swagger UIの確認](#Swagger-UIの確認)
4. [コードの確認](#コードの確認)

## FastAPIとは

元記事を表示

Pythonでエイシングプログラミングコンテスト2020

# エイシングプログラミングコンテスト2020に参加しました
普段のABCよりD、Eが重かったですね。本番はD完、Eは解説AC。

# [A – Number of Multiples](https://atcoder.jp/contests/aising2020/tasks/aising2020_a)

キャプチャ.PNG

N以下のdの倍数はN//dなので、R//dから(L-1)//dを引く。
開始1分でAC。

“`python
L, R, d = map(int, input().split())
print(R//d – (L-1)//d)
“`

# [B – An Odd Problem](https://atcoder.jp/contests/aising2020/tasks/aising2

元記事を表示

pandasメモ

 学びのメモとして、pandas周辺のコードをチートシート代わりに自分の参考用としてまとめています。

1. pandasのインポート

“`python
import pandas as pd
“`
2. DataFrameの作り方
 辞書から作成する方法と、CSVファイルから読み込む方法の2つがある。
①辞書から作成する方法

“`python
import pandas as pd
dict = {“name”:[“Hokkaido”,”Tokyo”,”Aichi”,”Osaka”],
“capital”:[“Sapporo”,”Shinzyuku”,”Nagoya”,”Osaka”],
“area”:[83424,2191,5172,1905],
“population”:[5286,13822,7537,8813]}
prefecture = pd.DataFrame(dict)
prefecture
“`
![image.png](https://qiita-image-store.s3.a

元記事を表示

MySQLdb(mysqlclient) cursor.execute()でカラム名に変数を指定する

## 環境
##### SQLサーバー
OS: Archlinux
SQL サーバー: mysql Ver 15.1 Distrib 10.4.13-MariaDB, for Linux (x86_64) using readline 5.1
##### クライアント
OS: Windows 10 build 1909
言語: Python 3.8.4rc1
SQLクライアント: mysqlclient 2.0.1

## ハマったところ
このように書きたかった

“`Python3
hash_type = ‘md5’
fpath = ‘/home/me/test.txt’
hash = ‘0123456789ABCDEF0123456789ABCDEF’

connection = MySQLdb.connect(…略…)
cursor = connection.cursor()
cursor.execute(
‘UPDATE hashes (path, %s) VALUE (%s, %s);’,
(hash_type, fpath, hash)
)

元記事を表示

初心者のメモ ***TensorBoard を使っていく***

#はじめに
本投稿は、[Get started with TensorBoard](https://www.tensorflow.org/tensorboard/get_started#using_tensorboard_with_keras_modelfit) を元に翻訳と自分なりの解釈を含めて執筆しております。
そのため間違っている所や説明不足な箇所があると思います。

その際には、ご教授・ご指摘いただけると幸いです。

#僕のレベル
tensorflowをよくわかっていない。
python自体、機械学習を触らなくてはいけない状況になったがために触っている。
しかし、ディープラーニング については色々と本を読んで知った気にはなっている。

#開発環境
mac Catalina
python 3.6.10
anaconda
jupyter notebook
tensorflow 2.0.0(tensorboardも一緒に入ってきます!)

#tensorboardについて
参考リンクより
>In machine learning, to improve something you

元記事を表示

【Yahoo!天気リプレース版】LINE Notify + Pythonで天気情報を取得する方法

#はじめに
以前投稿した[LINE Notify + Pythonで天気予報を取得する方法](https://qiita.com/S_eki/items/206ddb321768ad4e7544)で天気予報サイトからスクレイピングした天気予報をLINEで通知する方法を紹介しました。

しかし、ソース元の[livedoor天気予報](http://weather.livedoor.com)が2020年7月31日を以ってサービス終了となってしまったため、天気情報の収集先のWebサービスの変更(リプレース)を実施することにしました。

#移行先の選定と理由
今回はYahoo!天気を移行先として選びました。
スクリーンショット 2020-07-12 14.07.19.png

選んだ理由は下記。

– タグ構造がシンプル

元記事を表示

Online上で公開されている、pythonを学ぶ上で参考になる教材のまとめ

 Online上で公開されている、pythonを学ぶ上で参考になる教材を忘備録としてまとめておきます。(太字は特に役立ったものです)

Pythonプログラミング入門 (東京大学 数理・情報教育研究センター)
https://sites.google.com/view/ut-python/resource/%E6%95%99%E6%9D%90?authuser=0
Commnet: かなり基礎から詳しく解説されており、初学者に非常に便利な教材。演習問題もかなり豊富。すべての初学者におススメできる。

プログラミング演習 Python 2019 (喜多一)
https://repository.kulib.kyoto-u.ac.jp/dspace/handle/2433/245698

GCIデータサイエンティスト育成講座

グローバル消費インテリジェンス寄附講座演習コンテンツ 公開ページ


Comment: データサイエンティストになるための基礎が網羅されているが、演習問題が少ないのと、1項目に割いている紙幅が少ないので、プログラミング初

元記事を表示

ゼロから始めるLeetCode Day84「142. Linked List Cycle Ⅱ」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

報告パワポ生成を自動化

#パワポの作成の自動化
業務で大量のデータをパワポにまとめる必要があったので、Pythonのライブラリpython-pptxとTkinterを使って半日くらいで作業を自動化しました。
**【目標】**
・動画・画像・デーブルデータをパワポに自動でまとめる。
・操作をGUI化して、プログラム知らない人でも使用可能にする。
**【結論】**
Python便利すぎ。ものすごく作業が捗りました。
本記事のプログラムコードはご自由に編集・使用下さい。
**【参考にした記事】**
https://qiita.com/code_440/items/22e8539da465686496d3
https://qiita.com/kotai2003/items/fe9b5e59c7164a95ded8

#完成品
#####➀プログラム実行すると、
![プログラム実行.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624261/5910fff2-c9c0-c4e5-0124-79a50070e43e.png)

#####

元記事を表示

[Python]virtualenvの使い方

# 概要
Pythonのパッケージであるvirtualenvの使用方法を示す。

# virtualenvとは
特定ディレクトリ以下をPythonの仮想環境としてセットアップするために用いられる。
これにより、プロジェクトごとにPythonのインタプリタ、パッケージ等のバージョンを個別に管理することができる。

※「とあるプロジェクト開発時に特定パッケージのバージョンを上げたら、同パッケージを使用しているもう一方のプロジェクトでエラーを吐くようになった」みたいなことを防げる

# 基本的な使い方
virtualenvを入手
`$ sudo pip install virtualenv`
バージョン確認
`$ virtualenv –version`
ディレクトリ配下に仮想環境を構築
`$ virtualenv `
仮想環境を有効化
`$ . /bin/activate`
仮想環境を無効化
`(dir_name)$ deactivate`
仮想環境を抹消するときはディレクトリごと全消去でOK
`$ rm -rf `

元記事を表示

ゼロから始めるLeetCode Day83 「102. Binary Tree Level Order Traversal」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

AnacondaをWindowsにインストールする

##はじめに
普段はjavaの現場で仕事をしてるSE2年目です。
Qittaへの投稿は、初めてになります。

今回は、AnacondaをWindowsにインストールする手順を紹介しようと思います。
**尚、この記事でインストールするPythonはversion3.7になります。**

##Anacondaとは
Anacondaは、Pythonでよく使う外部ライブラリとPythonがセットになった状態で配布されているもので、ディストリビューションと呼ばれるものです。
Numpyやsclik-learnなど250以上のパッケージが自動でインストールされます。
以下の表はAnacondaに含まれるパッケージとアプリケーションの一部です。

| 名称 | 説明 |
| :——-|:—–|
| Numpy |数学関数ライブラリ|
|Matplotlib|グラフ描画ライブラリ|
|Pandas|データ解析ライブラリ|
|scikit-learn|機械学習ライブラリ|
|Spyder|Pythonの開発、実行、デバックができるIDE|

##Windows用のインストラーをダウ

元記事を表示

PCを起動する度に最新の天気図を壁紙にするプログラム

# はじめに
私事ですが、来月実施される気象予報士試験を受験します。(学科は受かっているのであとは実技だけ……)
受験に向けて天気図に慣れておきたいと思っていますが、定期的に天気図アプリや気象庁のホームページをチェックするのは~~面倒で~~よく忘れてしまいます。
そこで、パソコンを起動するたびに気象庁のHPから天気図のPDFを取り込んで、それを画像ファイルに変換して壁紙に設定するプログラムを作成しました。
壁紙なら毎日見るっしょ。

環境:Windows10 + Python3.7

# フォルダ構成
プロジェクトフォルダの構造は、以下のようにしています。
・tenkizu_kabegami.pyは、天気図を取得して壁紙にするプログラムのコードです。
・tenkizu_kabegami.batは、tenkizu_kabegami.pyを実行させるためのbatファイルです。
・tenkizu_pdfは、天気図をPDFファイルとして保管するフォルダです。
・tenkizu_pngは、天気図をpngファイルとして保管するフォルダです。
・popplerは、PDFを画像ファイルにするときに必要

元記事を表示

OTHERカテゴリの最新記事