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

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

スライスでtorchのunsqueeze的な処理

スライスにNoneを追加するとNoneを追加した次元に空の次元が追加される。

“`py
>>> import numpy as np
>>> x = np.ones((32,27,517))
>>> x[:,:,None,:].shape
(32, 27, 1, 517)
“`

元記事を表示

python の zip 関数の動き

# zipが何をしているか?

zipがどのように動くか気になったのでpythonチュートリアルで調べた。

[pythonチュートリアル 5. データ構造より抜粋](https://docs.python.org/ja/3/tutorial/datastructures.html#nested-list-comprehensions)

“`python
matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
]
print(list(zip(*matrix)))
“`
>[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

ネストしたfor

“`
vec = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
list = [num for elem in vec for num in elem]
list = []
for elem in vec:
print(elem)
for num in elem:

元記事を表示

pd.date_rangeより特定日時のインデックスを取得する方法

追記
`pandas.get_loc()`や`pandas.searchsorted()`というメソッドがあることを教えていただきました.コメント欄をご覧ください.

———————————

暗算でも良いですが,パソコンに考えてもらった方が安心ですよね.
numpy.whereを使います. numpyは不要です.コメント欄をご覧ください.

“`python3
import pandas as pd
import numpy as np

# 時系列の作成
times = pd.date_range(‘2015-04-01 00’, ‘2015-04-30 18′, freq=’6H’)

# 特定日時
t = ‘2015-04-13 12’

# 特定日時のインデックスの取得
i = np.where(times==t)[0][0]
“`

最初の[0]はタプルのアンパック,次の[0]はnumpy.ndarrayのアンパック,最終的にnumpy.int64を返します.

numpy.whereはTrue

元記事を表示

Pythonによるメール配信(SMTPAuthenticationError )

環境:Windows10 pro
python 3.9
VsCode

勉強の為に
pythonからコードを書いてメールをテスト送信しました。

““
from email import message
import smtplib

smtp_host = ‘smtp.gmail.com’
smtp_port = 587
use_smtps = any
from_email =’#####@gmail.com’
to_email = ‘####@outlook.jp’
username = ‘####@gmail.com’
password = ”

msg = message.EmailMessage()
msg.set_content(‘Test email’)
msg[‘Subject’] = ‘Test email sub’
msg[‘From’] = from_email
msg[‘To’] = to_email

server = smtplib.SMTP(smtp_host, smtp_port)
server.ehlo()
server.starttls()
s

元記事を表示

ApexLegendsの戦歴をPythonで取得してみよう

# はじめに
この記事ではPythonのライブラリである[ApexTrackerPy](https://github.com/nerrog/ApexTrackerPy)を使用したPythonでのApexlegendsの戦歴の取得方法などを解説します。

# 目次

* APIの登録
* APIの種類について
* 登録
* 実際に戦歴を取得してみる
* APIの呼び出し方
* 値を取り出してみる
* おまけ:現在のマップを取得してみる

# APIの登録
## APIの種類について
ApexTrackerPyでは[UNOFFICIAL APEX LEGENDS API](https://apexlegendsapi.com/)と[TRACKER NETWORK API](https://tracker.gg/developers/docs/titles/apex)の2種類に対応しています。
UNOFFICIAL APEX LEGENDS APIは戦歴以外にもサーバーステータスやマップローテーションなど多くの情報が取得できます。
戦歴(プレイヤーステータス)

元記事を表示

AOJトライに関する知識知見の記録共有 :Volume0-0008

# 概要
Sum of 4 Integers

https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0008

# コード
TIPS:オペランド定義域を可変化

“`
import itertools

def calc_num_opr(sm, inf=0, sup=10):
c = range(inf, sup)
return [[a,b,c,d] for a, b, c, d in itertools.product(c, c, c, c) if sum([a,b,c,d]) == sm]

def core(arg):
num_opr = calc_num_opr(int(arg))
return len(num_opr), num_opr

def app(*args):
return [[arg, core(arg)] for arg in args]

from pprint import pprint
try:
pprint(app(
# b

元記事を表示

今までの振返り +α(算術計算,変数,リスト辞書 等)

# 今回の授業資料

# 本日の内容
### 新しいpython3

元記事を表示

[Python] 3.10.0

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137182/f6f5fd80-52e6-9e3f-5484-3a03fcbc6e54.png)

Major new features of the 3.10 series, compared to 3.9
Among the new major new features and changes so far:

PEP 623 — Deprecate and prepare for the removal of the wstr member in PyUnicodeObject.
PEP 604 — Allow writing union types as X | Y
PEP 612 — Parameter Specification Variables
PEP 626 — Precise line numbers for debugging and other tools.
PEP 618 — Add Optional L

元記事を表示

[Python3 / pandas] colaboratory上で、pandas_profilingのProfileReportを実行するとエラーコンボが発生

# Summary(概要)

発生したエラーはこれら。

“`python
# 1. join_axesなんて引き数は知らないよ
TypeError: concat() got an unexpected keyword argument ‘join_axes’

# 2. pandas_profiling.mplstyleってファイルが見つからないよ
FileNotFoundError: [Errno 2] No such file or directory: ‘/usr/local/lib/python3.7/dist-packages/pandas_profiling/pandas_profiling.mplstyle’

# 3. 新しいバージョン使いたかったらruntime再起動してね
WARNING: The following packages were previously imported in this runtime:
[pandas_profiling]
You must restart the runtime in order to use newly

元記事を表示

TwitterAPIを使ってTweetをリアルタイムで取得したい

はじめに

* Qiita初めてなので慣れてないです
* SE歴4年ほど(コードを書くのは本業ではない)
* TwitterAPIを使って自由自在にツイートを取得したい
* 飽き性です

事前準備

* TwitterのDevelopperアカウントの作成
* pythonの実行環境整備(私はjupyterを使用しています)

ストリームって何?

よくわかりません。
なんかリアルタイムで情報をやりとりするっていう感覚です。

とりあえずドキュメントを漁ってみる

TwitterAPIのv2ってやつが最新っぽいのでそれを使います
https://developer.twitter.com/en/docs/twitter-api

Filterd streamっていうやつがなんか名前的にそれっぽい
https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/introduction

quick startを読んでみる
https://developer.twi

元記事を表示

PythonによるFFTを用いたパワースペクトル推定

# はじめに
出来る限り公式ドキュメントに従った実装を心掛けていますが、不慣れなところは見逃していただけると幸いです。本記事は私が書いた[記事](https://uene.hatenablog.com/)を軽く再編集してQiitaに移植したものです。


# 概観
#### はじめに
パワースペクトル(もしくはパワースペクトル密度)の推定方法は様々です。大きく分けて二つの手法が存在します。
> 論文やライブラリではパワースペクトル密度を推定することがほとんどだと思います。パワースペクトルとパワースペクトル密度の違いについては別記事で解説する予定です。ちなみにパワースペクトル密度からパワースペクトルへの変換は比較的簡単に行うことが出来ます。

1. パラメトリック手法
1. ノンパラメトリック手法

> セミパラメトリックという手法も存在するようですが、私には理解できませんでした。

私は統計学をあまり得意ではないので、それぞれの用語の正しい意味は詳しい人に聞いてみてください。今回

元記事を表示

Python Enum ベストプラクティス

PythonのEnumについての一番シンプルな方法を紹介します。
(他のどの記事よりも実用的で分かりやすいはず・・・)
これだけ理解すれば困ることはほとんどありません!

## Enumとは

定数を列挙して、ステータス管理などに便利です。
C#などを経験している方はPythonでもEnumを使いたくなりますよね。

## 公式ドキュメント

公式ドキュメントでは、
Enum, IntEnum, Flag, IntFlag, FlagBoundaryなどありますが、基本の「**Enum**」だけで十分だと思います。
(コードのシンプルさを考慮してもEnumだけが良いです)

> [Enum 公式ドキュメント](https://docs.python.org/ja/3/library/enum.html)

## ソースコード

Enumは説明よりコードを見る方が手っ取り早いので、さっそく紹介します。

Enumの名前と値の一覧を取得したいときもたまにあるので、
Classmethodとして実装しています。

### Case1 ソースコード

“`python
from enum i

元記事を表示

Pythonによる振幅スペクトルと位相スペクトル

# はじめに
出来る限り公式ドキュメントに従った実装を心掛けていますが、不慣れなところは見逃していただけると幸いです。本記事は私が書いた[記事](https://uene.hatenablog.com/)を軽く再編集してQiitaに移植したものです。


# 概観
フーリエ変換は扱う信号とデータの長さによって四種類あります。

1. 無限長のデータを扱う、連続系でのフーリエ変換
1. 有限長のデータを扱う、連続系でのフーリエ変換
1. 無限長のデータを扱う、離散系でのフーリエ変換
1. 有限長のデータを扱う、離散系でのフーリエ変換

[scipy – Fourier Transforms](https://docs.scipy.org/doc/scipy/reference/tutorial/fft.html)にもある通り、有限長のデータを扱う、離散系でのフーリエ変換(DFT)が実装されています。よくあるライブラリ

元記事を表示

JPEGファイルから文字を抽出する方法

#1 はじめに
Pythonを使って、JPEGファイルから文字を抽出してみます。

#2 環境
VMware Workstation 15 Playerで作成した仮想マシン(1台)を使用しました。
CentOSの版数は下記のとおりです。

“`console:CentOS版数
[root@server ~]# cat /etc/redhat-release
CentOS Linux release 8.3.2011
“`
カーネル版数は以下のとおりです。

“`console:カーネル版数
[root@server ~]# uname -r
4.18.0-240.el8.x86_64
“`

#3 パッケージのインストール
まず、仮想マシンにAnacondaをインストールしました。
インストール方法は、[Anacondaのインストール方法](https://qiita.com/hana_shin/items/a65d686d0e611884cef4)を参照してください。

次に、各種パッケージのアップデートを行いました。

“`console:アップデート
(base) [r

元記事を表示

Lambda で BigQuery のデータを ZIP 化し S3 へアップロードする【無料枠】

Google Cloud Platform (GCP) BigQuery から Amazon S3 へ転送する記事が少ない印象を受けたので、備忘録として初投稿します。
どなたかのお役に立てば幸いです。

## 1. やりたいこと

1. AWS Lambda で BigQuery のデータを DataFrame で取得する
– GCP との認証方法は以下を使用する
– サービスアカウントキー + AWS SSM を使用する方法
– Workload Identity 連携する方法
2. データを CSV 化 & ZIP 圧縮し、 S3 へアップロードする

## 2. 前提

– GCP のプロジェクト、AWS のアカウント等が作成済みであること
– Google Cloud SDK (gcloud) が使用できること
 インストールは、こちらの[Google Cloud SDK(gcloud) を Homebrew 経由で Mac にインストールする方法](https://zenn.dev/phi/articles/gcloud-set

元記事を表示

ffmpeg-pythonを使って動画をトリミングする

#はじめに
自分なりにffmpeg-pythonの使い方をまとめる
`ffmpeg.exe`を`subprocess`で操作するよりは目に優しそうだったので…

#ffmpeg-pythonの取得
pipでインストール。

“`
pip install ffmpeg-python
“`

※ちなみに、似たようなラッパーがいくつかあるので注意。2ミス。

“`
○ pip install ffmpeg-python
——————————
× pip install ffmpeg
× pip install python-ffmpeg
“`

#ffmpegの取得

ffmpeg-pythonはただのラッパーなので、ffmpeg.exe本体がないと使えない。FFmpeg.exeが見つからなくてもFileNotFoundになるので、事前に公式サイトから取得しておくこと。
※ちなみに、動画の編集だけならffmpeg.exeだけでいいが、動画ファイルから動画情報を取得するffmpeg.probe()という処理を実行するためには`ffprobe.ex

元記事を表示

「matplotlib 色 一覧」で検索するのはもう止めよう

## Abstract

matplotlibで使える色は沢山あります。なので使いたい色を探す際には「matplotlib 色 一覧」と検索される方が多いでしょう。本記事ではコマンドラインに色の一覧を表示させることで、色の一覧確認のためにわざわざブラウザを開く手間を省く[mplcolors](https://github.com/AstroBarker/mplcolors)を紹介します。

## 環境

一応今回の記事の環境を。Pythonを動かせれば大きな違いはないかと思います。

– Windows 10
– Python 3.7.9

もちろんですが、matplotlibが使えなければ意味がありません。念のため注意。

## mplcolors

[mplcolors](https://github.com/AstroBarker/mplcolors)紹介

>Tired of searching “matplotlib colors” every week/day/hour? This simple script displays them all conveniently r

元記事を表示

Glue Jobでpandas has no attribute ‘json_normalize’に四苦八苦した

# 前提(長くて説明下手です)

ETL処理をGlue jobを用いて、自動化しようとしたときに

“`python
import pandas
from pandas.io.json import json_normalize
df = pandas.json_normalize()
#~ 中略 ~
“`
というように処理をGlueスクリプトに書いていたが、jobを実行してみるとエラーログには何も書かれておらず、module ‘pandas’ has no attribute ‘json_normalize’というログのみ書かれていた。

またjobのstatusは、「Succeeded」になっているが、肝心のcsvファイルはs3にアップロードされていない。
この時初めて知ったのだが、json_normalizeはpandasのversion >= ‘1.0.0’で実装されており、Glueでのpandasのversionを確認したところ、0.~であり、1.0.0より前のversionだった。

Glue スクリプトでは、pipを叩くことはでき

元記事を表示

1分でXserverにFlaskを導入する。(Linuxサーバーへ、python3環境を構築する。

Xserver に、Flaskを導入しよう。
そう考えたものの、かなり詰まりまっておりました。。。

ですが、以下の方法により瞬殺でFlask環境を整えることができたので共有します。

https://kaedeee.com/xserver-flask-python/

今すぐやり方を知りたい!と言う方は、記事の半分あたりより確認してみてください。

#バージョン
Xserver X10
Miniconda3-py38_4.8.3-Linux-x86_64.sh
Python 3.8

#解決前に試していたこと
前提として、このやり方では失敗しました。

1. VScode によるSSH 環境を整える
1. Python3, pip3 インストールしたい←brewコマンド使いたい←Linuxbrew入れよう←git, curlインストール必要、、、と言うことで(xserver ではSudoコマンド使えないので、回りくどい方法に、、、)
1. Linuxbrew をxserver オリジナルのgitとcurlを使って入れてみる→失敗。バージョンが低いとのエラー。
1. git,curlの

元記事を表示

【備忘録】Pythonのインスタンス(オブジェクト?)の中身を確認したいとき

# はじめに
機械学習のコードをいじっているとき,
出てきたバイナリファイルの中身を確認したいときがありますよね?
そんなとき用に備忘録として確認の仕方を残しておきます.

# 結論
Open-NMTでpreprocessを行った際に,`-save_data`引数に指定したファイルに保存されたバイナリ化したデータを対象に説明していきます.

pythonのインタラクティブモードでデータをloadすると以下のようになっていると思います.
(ここでは`training-data-en-de.vocab.pt`が対象データ)

“`python
>>> import torch
>>> data = torch.load(‘training-data-en-de.vocab.pt’)
>>> data
{‘src’: , ‘tgt’:

元記事を表示

OTHERカテゴリの最新記事