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

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

UbuntuStudio Tips: (備忘録)mididingsのpython3対応

# はじめに
ubuntu studioに普通にapt-getでmididings入れるとpython2.7で動いてしまうので
python3で動くようにしたときのメモ

# ソースの取得

どうやらpython3-mididingsとかいうパッケージはなさそうなので、
ソースからビルドして/usr/local/binにつっこむことにした

まずはソースの取得

“`
$ git clone https://github.com/dsacre/mididings.git
“`
mididingsってフォルダがあるのでそこのフォルダで色々作業する

※2021/03/25追記
なんか今アクティブなブランチは以下のものらしいpython3.7対応済みとのこと
https://github.com/marcan/mididings.git

# ソースの修正

修正箇所は4ファイル
– setup.py
– scripts/livedings
– scripts/mididings
– scripts/sendmidi

先頭行の`#!/usr/bin/env python` を `#!

元記事を表示

Re.ゼロから始める自動翻訳機開発!その1

#何をするのか?
中学3年間で習う英文法のエッセンスを詰め込んで文法的に正確な翻訳できるプログラムを作る。そして、アプリ化する。もちろん現在の翻訳サービス、DeeplやGoogleTranslationなどが英文法を使っていないのは百も承知。もし仮にも英文法をサービスに組み込んで置きながらあのガバガバ翻訳だったら怖い。ですが、そんな機械学習を用いた翻訳は今機械学習の入門書を読んでいるうp主には無理。という理由もあるが、実際は英語学習のモチベを保つ為であるのは内緒です。英文法を勉強するだけではうp主のモチベが折れて、勉強しなくなってしまう。それを避ける為に今回のプロジェクトを立てた理由です。

#仕様を考える
と言われても今作りたい物がアバウト過ぎるのでしっかりと仕様を考える。まずは日本語を英語にするのかそれとも英語を日本語にするのかだが、後者を選択したいと思う。なぜなら日本語は主語が無くても通じる節があり、その文の主語を補う方法が思いつかない。よって消去法により後者、英語を日本語に自動翻訳するシステムにしようと思う。次に決めるのはプログラミング言語を選定して行く。まずパッと思い付くのは

元記事を表示

スコープについて Python競プロメモ③

使用言語 Python3

“`
def vertical(aa,bb):
num = aa + bb
return num

num = 5
vertical(1,2)
print(num)

=>3
5
“`
上のようなコードの場合、def内にあるnumはlocalな変数のため、def外になると適用されない。そのため、vertical(1,2)では3を返すが、print(num)ではglobalな変数である5を返す。

次に、def内にあるnumをglobalな変数にしてみるとどうなるかを書く。

“`
def vertical(aa,bb):
global num
num = aa + bb
return num

num = 5
vertical(1,2)
print(num)

=>3
3
“`
このコードを上から順にみていくと、
①まずnum = 5が代入される
②vertical(1,2)が実行され、num = 3が新たに代入され、numが返される。
③print(num)により、②で代入されたnumが返される。

元記事を表示

2021年に日本が注力したいことを総理所信表明演説から分析してみた.

## はじめに
今回は,現日本の総理大臣が2021年に総理として実践したいことをデータ(総理所信表明演説)から
導いていいきたいと思います.
## 分析に至る経緯
僕は,最近就活をぼちぼちしているのですが,あるベンチャー企業の面接をしている
中で政治が進めたい方向とビジネスをマッチさせながら進めて行くというやり方が
あるという話をしていただきました.
その話の中で僕が思ったのは,それを客観的にわかるものがあったら便利だなと感じ
分析してみた感じです.
ちなみに,その企業の面接を受け,お話できたのはすごくよかったなと感じています.
## 注意事項
この分析は,僕がなるべく客観的にデータを見てストップワードを設定し分析をしています.
特に政治的主張はありません.
また,所属企業や団体とは一切関係なく,一個人としての分析ですのでそちらをご了承いただけますよう宜しくお願い致します.
## 分析のアジェンダ
・データの取得
使用ライブラリ:☆BeautifulSoup☆requests
・データの前処理
使用ライブラリ:☆MeCab☆pandas
・可視化
使用ライブラリ:☆nlplot
##

元記事を表示

なぜPythonにはsetter/getterメソッドがないのか?

# 概要
JavaやC++などの他のオブジェクト指向言語では`setter/getter`メソッドの使用が推奨されているが、Pythonには存在しない。
もともとJavaやC++に触れていた僕には「**なぜPythonにはsetter/getterメソッドがないのか?**」がすごく疑問だった。
さらに、Javaなどの言語の資料では
「**クラス内部の変数はprivateにして隠蔽せよ**」
と書いてあるが、逆にPythonの資料では
「**privateはなるべく使わずpublicを使え**」
と書いてあることが多い。
**矛盾しているのでは…?**

気になったのでいろいろ調べて見た結果、そこには**2つの理由**があることがわかった。
さらに、Pythonで`setter/getter`を使いたい場合の**1つの代替案**があるということもわかった。
この記事では

– オブジェクト指向とカプセル化について
– Pythonにsetter/getterメソッドが存在しない2つの理由
– setter/getterメソッドの代替案

の順に説明する。
最初のオブジェクト指向につい

元記事を表示

機械学習が学べるサイトまとめ

自分が機械学の勉強をしたり、情報収集をする際に参考にしているサイトのまとめ
随時追加予定

###学習教材
[PyTorchチュートリアル(日本語翻訳版)]
(https://yutaroogawa.github.io/pytorch_tutorials_jp/)
公式チュートリアルの日本語版。Gooogle Colaboratoryファイルもあるのですぐ始められてありがたい。

[chainerチュートリアル]
(https://tutorials.chainer.org/ja/tutorial.html)
開発が終了してしまったchainerだが、基本的な内容のため参考になる。

[東京大学松尾研究室 演習コンテンツ]
(https://weblab.t.u-tokyo.ac.jp/%e6%bc%94%e7%bf%92%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e5%85%ac%e9%96%8b%e3%83%9a%e3%83%bc%e3%82%b8/)
東京大学の松尾研究室が監修した学習講座を無料で公開してくれてる。環境構築不要でgo

元記事を表示

【Python】擬似乱数を生成するrandomと機密を扱うために安全な乱数を生成するsecrets(備忘録)

自分用メモ

基本的に乱数は**random**を使えばいいが、セキュリティ目的に使用することは非推奨らしい。
セキュリティや暗号学的な用途については**secrets**を使用することが推奨されている。

# random — 擬似乱数を生成する
よく使う関数を抜粋

## float型の乱数を取得する関数(randomの基本の関数)

### random.random()

“`python
import random

print(random.random())
print(random.random())
print(random.random())
“`
“`
0.0016279893463542194
0.19053946851887782
0.5239379354847451
“`

## 整数用の関数

### random.randrange(stop)
stopに指定した値を上限(stop–1)としてランダムな整数を返す。

“`python
import random

print(random.randrange(10))
print(ran

元記事を表示

Anaconda による OpenCV 導入手順(Mac PC)

#1. はじめに

Mac PC に **Anaconda** をインストールし、
環境を作成して **OpenCV** を導入する手順をまとめます。

また、OpenCV ライブラリを読み込み 画像を表示させる簡単な処理を実行します。

#2. pyenv 導入

今回は **pyenv**を使用して Anaconda を 導入します。

まずは、以下リンク先の記事 の **[2. Python3 導入] > [2-1. pyenv 導入]** を参考に **pyenv** を導入します。

・Qiita:Mac PC へのPython3 導入手順 > [2. Python3 導入] > [2-1. pyenv 導入]
https://qiita.com/Haruka-Ogawa/items/b1bf5ad9b28d44702a64#2-1-pyenv-%E5%B0%8E%E5%85%A5

#3. Anaconda 導入

##3-1. インストール

第2項で導入した **pyenv** コマンドを使用して、**Anaconda** を導入します。

###① インストール

元記事を表示

scikit-learnで多項式回帰にスパースモデリングを試す

## はじめに
スパースモデリングは、解のスパース性を仮定して、少ないデータからでもデータの関係をモデル化できるようにする手法です。大量のデータがあることを前提にデータの関係をモデル化するディープラーニングとは対照的なものです。
理解を深めるため、scikit-learnで「ほとんどの係数がゼロの多項式関数」と解のスパース性を仮定した多項式回帰の問題を解いてみます。

### この記事でやること
– スパースモデリングの概要説明
– 多項式回帰を、`sklearn.linear_model`の[Regressors with variable selection](https://scikit-learn.org/stable/modules/classes.html#regressors-with-variable-selection)を使って解く
– Google Colaboratoryで[この記事に用いたソースコードの全文](https://colab.research.google.com/drive/17SPaS-KUz2yRrTWTZQqZ-qRo6Evv0s9m

元記事を表示

<python>プログラミング実行中の記録を残す→logging

### 参考リンク
https://docs.python.org/ja/3.8/howto/logging.html

### やりたいこと
機械学習モデルのパラメータやら、特徴量エンジニアリングの試行実験結果を、
excelによる手打ち記録から、自動ファイル出力へとステップアップする

### この記事の対象者
– python始めたばかり
– モデルのパラメータを保存したい
– 実験結果を残したい

### コード

import logging # インポート

logger = logging.getLogger(‘aaa’) # オブジェクト
logger.setLevel(logging.DEBUG) # 表示(出力)するlogレベルをdebugに変更する(デフォルトはwarning)

log_file = logging.FileHandler(filename=’test.log’, mode=’w’) # 出力するファイルを指定
logger.addHandler(log_file) 

logger.debug(‘debug’)

元記事を表示

pythonでatcoder黄色になるまでにしたこと

[ansain](https://atcoder.jp/users/ansain)です。
ABC194でatcoder黄色になったので振り返りを兼ねて2週間かかりましたが色変記事を書きました。
#バックグラウンド

・地方出身→地方進学校→東工大理学部地球惑星科学科卒→某IT企業でデータサイエンス関係の仕事をしている。
・小中高時代は囲碁や数オリ(1回だけ本選出場)やって頭脳鍛えてた。でも東京進学校のすごい人たちの界隈とは全く接点なかったのでどういう生態か全く知らなかった。
・大学時代は東工大版進振りに負けて情報科学科落ち。なのでアルゴリズムの授業は何も受けてない。
・大学時代は趣味でプログラミングせずにボドゲサークルや音ゲーサークルで遊んでた。atcoderやABCの話題もtwitterのTLの片隅に見えるくらい。
・学部1年のプログラミングの授業でRuby,学科のプログラミングの授業でFortranをやったけどほとんど忘れた。
・卒研ではpythonを使って、天体観測情報データ分析用ライブラリのドキュメントを読んで、欲しい星の観測データを頑張って取り出してた。[^1]
・就職と研修

元記事を表示

julia v1.5.4から始めるJupyter Notebook

[前回](https://qiita.com/doorei/items/4498eb558e88f8fb378f)、juliaをインストールしたあと思うところあって、環境をきれいにしたところ、juliaがちょっとバージョンアップしていた。特に困ったことはないけど再々々々度書いてみる。

# やってみた環境
– Windows 10 Home (64bit) Ver 20H2 (OSビルド19042.868)
– julia v1.5.4 (64bit)

# やり方
1. juliaがインストール済みの前提(インストーラー版)
1. juliaのコンソールを起動(緑字のプロンプト)
1. `]`キーを押してパッケージモードへ(青字のプロンプトになる)
1. `add IJulia`を実行(Installing known registries into ~となり、しばらく時間がかかる)
1. Building IJulia → ~と出て完了
1. バックスペースでパッケージモードを抜ける(緑字のプロンプト)
1. `using IJulia`を実行(Precompilingされる)

元記事を表示

Pythonでsftpファイル送信

# 目的
Pythonでsftpファイル送信を行いたい

# 利用ライブラリ
– [atmoz/sftp](https://hub.docker.com/r/atmoz/sftp/)
– [paramiko](http://www.paramiko.org/)

# sftp開発環境構築
Dockerで「atmoz/sftp」を利用し構築します。
以下のコマンドでコンテナ起動します。

“`
docker run -p 22:22 -d atmoz/sftp hoge:pass:::upload
“`

ユーザ名「hoge」パスワード「pass」アップロード先フォルダ「upload」で構築しました。

# sftp接続確認
“`
$ sftp hoge@localhost
hoge@localhost’s password:
Connected to localhost.
sftp> ls
upload
sftp> cd upload/
sftp> pwd
Remote working directory: /upload
“`

接続確認ができましたのでローカルのsft

元記事を表示

【Python】for文でインデックスを自動採番する(自分でn += 1 とかしない)方法(備忘録)

自分用メモ

` enumerate(iterable, start=0)`を使う。

# enumerate
そもそも` enumerate(iterable, start=0)`とはカウント(デフォルトは0)と、iterable上のイテレーションによって得られた値を含むタプルを返す組み込み関数。

“`python
seasons = [‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]

seasons_index_0 = list(enumerate(seasons))
seasons_index_1 = list(enumerate(seasons, 1))
seasons_index_5 = list(enumerate(seasons, 5))

print(seasons_index_0)
print(seasons_index_1)
print(seasons_index_5)
“`
出力結果

“`
[(0, ‘Spring’), (1, ‘Summer’), (2, ‘Fall’), (3, ‘Winter’)]
[(1, ‘Spri

元記事を表示

[IPython embed] ちょっと便利なデバッグ方法

#プログラムを書くとき
この時に,途中でこのコードが正しいのか確認したい・一応かけたけど途中のとこの数値とかがあっているかの確認したいという場合があります.そんな時,私は以下の手法で確認していました.linux上で動かせるのでかっこいい.
ただし,もっと良い方法とかあるかもしれないのでより良い方法を教えてくださると嬉しいです.

#!!!!!EMBEDDING!!!!!!
この題のようにembedというのを間に打ち込めば,linuxのようなターミナル上で確認することができます.vscodeのデバッグ昨日よりかっこいいと思っているので,私は多用しています.

まずは黙ってインストール
“`
pip install IPython
“`

> Defaulting to user installation because normal site-packages is not writeable
Collecting IPython
Downloading ipython-7.16.1-py3-none-any.whl (785 kB)
|████████████████

元記事を表示

Django quote_from_bytes() expected bytes

#### 問題
“`Python
class Create(generic.CreateView):
template_name = …
form_class = …
def get_success_url(self):
return redirect(reverse_lazy(“blog:detail”, kwargs={…}))
“`
とかの`View`を書いてたら、
`quote_from_bytes() expected bytes`ってエラーが出た。
#### 解決
[stackoverflow](https://stackoverflow.com/questions/57269166/typeerror-quote-from-bytes-expected-bytes-after-redirect)より、

“`Python
def get_success_url(self):
return reverse_lazy(“blog:detail”, kwargs={…})
“`
`get_success_u

元記事を表示

[python glob] 私の好きな複数のファイル読み込みの方法

#python globとは
pythonにはさまざまなモジュールがあり,その中で私はglobというのが結構好きで使っていました.
簡単に説明すると,
glob=掴む
的な意味なので,複数のファイルを探るといったときに使えます.

#使い方
まず,複数のファイルを用意します.
a000.txt
a001.txt
a002.txt
a003.txt
a004.txt
があったとします.

“`python:a.py
import glob
a = glob.glob(‘./a*.txt’)
print(a)
“`
“`
> python .\a.py
“`
> [‘.\\a000.txt’, ‘.\\a001.txt’, ‘.\\a002.txt’, ‘.\\a003.txt’, ‘.\\a004.txt’]

こんな感じで結果が表示されます.
このようにa***.txtのファイルを探すことに成功しました.もしディレクトリ内にb***.txtといったファイルがある場合,それは読み込みされずa始まりのファイルのみが選択されます.

そして使った後に数値ファイルであれあnumpy.

元記事を表示

[Python]Unionで不便なケースと、それを解決するジェネリックのTypeVarについて

ここ数か月、Pythonで型付きの状態でお仕事やプライベートでのコーディングをしてみて、UnionやTypeVarなどのジェネリックのものなどの使い分けに少し慣れてきたので備忘録として軽く備忘録としてアウトプットしておきます。ジェネリックについてもある程度深堀りします。

# 使う環境

– Python 3.8.5
– Pylance(型チェック用)
– 参考 : [[Python]PylanceのVS Code拡張機能をさっそく使ってみた。](https://qiita.com/simonritchie/items/33ca57cdb5cb2a12ae16)

# 複数の型の引数と返却値を受け付ける関数でAnyを使う時の問題点

複数の型を受け付ける関数を作る場合、Any型を使うという選択肢があります。例えば以下のように引数の値を2倍するという関数を考えてみます。整数などを指定した場合には2倍された値、文字列などが指定されればその文字列を2回分繰り返した値が返却されます。

“`py
from typing import Any

def multiply_two(x: A

元記事を表示

初投稿(test)

#(1)Qiitaデビューしてみました
はじめまして.
まず簡単に自己紹介(練習なのでちょいちょい文字をいじってみました)

***
・陸上競技長距離:PB *5000m*: 15’25”, *marathon*:2’35″33
・プログラミング的な経験:C, **python**, tensorflow1, **tensorflow2**, ROS, Arduino
・Atcoder:勉強中
・卒論修論:深層学習を用いた人間協働ロボットの画像による目標指向行動的な感じ
・社会人では:機械系メーカーのAI&ICT部門で働く予定
・Qiitaを始めた理由:今まで学んできたことをoutputして自分の理解をより深めたい(間違いなどあれば指摘大歓迎です).自分の積極性がなかったの~~と研究室ではあまりoutputできなかったの~~で,これからはどんどん発信していきたいと思ったから.
・目標:国際マラソンレースに出場する(2’25″00くらいで走りたい),Atcoderで上位ランク,Kaggleでそこそこ頑張る,機械情報系の資格取る,論文出したい,ぼちぼちQiita記事書きたい
***
ってな

元記事を表示

PyaudioをWindowsのPython仮想環境にインストールする

**Windows10で仮想環境にPyaudioをインストールする際に少し手間取ったので、成功した方法をメモ**

#環境
Windows10 Home
pip 21.0.1

#手順
### ①適当な.pyを作り以下のコードをコピペして実行
– pipのバージョンによって、1行目が異なるので注意
– `pip get_supported `などで検索

“`Python
from pip._internal.utils.compatibility_tags import get_supported
print(get_supported())
“`

– リストに表示されるcp〇〇が後で必要になるため覚えておく
– 画像ではcp32 ~ cp38

![pip_cap.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/884788/04628076-62d0-db27-2559-976f2d340ce5.png)

### ②このサイト (https://www

元記事を表示

OTHERカテゴリの最新記事