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

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

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’:

元記事を表示

Python3 [::1]や[::2]を並べた アウトプット

まんまです
学習していてこの辺りややこしいのでリストアップしてみました

~~~python3
w=”aiueo”
print(w)
# aiueo

# 0番目から0文字飛ばしで返す
print(w[::1])
# aiueo

# 0番目から1文字飛ばしで返す
print(w[::2])
# auo

# 0番目から2文字飛ばしで返す
print(w[::3])
# ae

# 1番目から1文字飛ばしで返す
print(w[1::2])
# ie

# 1番目から1文字飛ばしで返す
print(w[int(True)::2])
# ie

# 0番目から1文字飛ばしで返す
print(w[int(False)::2])
# auo

# 1番目から1文字飛ばしで返す
print(w[(True)::2])
# ie

# 0番目から1文字飛ばしで返す
print(w[(False)::2])
# auo

# 下記 おまけ
# 単体で使うと真偽
print(True)
# True

# 単体で使うと真偽
print(False)
# False

# intと組み合わせると

元記事を表示

Python3 YesかNoを返す (例:ある要素が含まれているかでYesかNoを返す)真偽判定

学習のアウトプットです

まずYesかNoを返す式

~~~python3
print(“NYoe s”[1::2])
# Yes
print(“NYoe s”[::2])
# No
~~~
となるので
1を入れている箇所に真偽判定で1か0を返す値を入れてあげると
YesかNoを返すようになる
そこで下記

~~~python3
print(False)
# False
print(False+0)
# 0
print(True)
# True
print(True+0)
# 1
~~~
TrueやFalseはintと混ぜると1や0を返してくれることを利用する
そしてまた下記

~~~python3
print(“NYoe s”[judge::2])
~~~
judgeの部分に下記の要素を代入すると

~~~python3
# 文字の配列を用意
sampleList=[‘a’, ‘i’, ‘u’, ‘e’, ‘o’]
# sampleListの配列は文字iを含んでいるか?
print(“i” in sampleList)
# True
print(“NYoe s”[“i” in sa

元記事を表示

scikit-learn all_estimators関数を使って,様々な学習器を試す

#目的

機械学習において,学習器の選定は重要な事項であるが,自分でプログラムを書いて様々な学習器を試すには労力がかかる.
scikit-learnにはすべての学習器を読み出して,試すための関数all_estimatorsが用意されており,これを使用する方法をまとめる.

#使い方
データには,テキストデータを使用しており,教師あり学習にて分類を行う.

“`.py
import numpy as np
import pandas as pd
import glob
from sklearn.metrics import classification_report, make_scorer, accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import KFold, StratifiedKFold
import ngram
import random
import os
from transformers import B

元記事を表示

【Python3】よく使う分類モデルのグリッドサーチ手法まとめ

# はじめに
分類タスクを行う際、毎回分類モデルについてとグリッドサーチを扱うためのパラメータなどを調べるのが面倒なのでまとめておくことにした。
今回はコードベースでまとめるので、モデルについての細かい説明は省きます。

# パッケージのインポート
今回使用するライブラリをインポートします。

“`py
import numpy as np
import pandas as pd
from sklearn import model_selection
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer

from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree

元記事を表示

【保存版】Python Dash パーフェクトガイド

Dashの使い方完全保存版

基本的な使い方は他の方もたくさん投稿していると思うので、実務で使う便利なテクニックの紹介が多いです。
辞書的に使ってください。

随時更新していくので是非ストック or LGTMしてください!

## 基本

### Dashとは

超簡単におしゃれなWEBアプリが開発できるライブラリ(Flaskベースのライブラリ)
グラフはPlotlyというライブラリを使用しています。
(PlotlyはPython以外にもR、Javascriptなどにも対応しています)

Webアプリのプロトタイプを開発する際や、社内利用のアプリならこれで十分だと思います。

> [Dash Hello World](https://dash.plotly.com/layout)

### 不便な点

* 大規模アプリには向かないかも(DjangoやFlaskの利用を検討)
* Flask render_template が使用できない(Flaskとレンダリングの仕組みが異なるため)
* コードが少し冗長となり、メンテナンス性はあまり良くない(templateが使えないから)
* ドキ

元記事を表示

OTHERカテゴリの最新記事