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

Python関連のことを調べてみた2020年09月14日
目次

【wandb】AttributeError: module ‘wandb’ has no attribute ‘init’とでたら

“`
AttributeError: module ‘wandb’ has no attribute ‘init’
“`

とエラーがでた。前は動いてたはずなのに…

“`
pip install –upgrade wandb
“`

したら動いた

元記事を表示

user名が変更になってpyenvのライブラリのパスが通らなくなった場合の対応

# 概要
user名が変更になり、ホームディレクトリの名前が変更されると、pyenvが動かなくなることがあります。これは、pyenvの環境にあるライブラリが参照しているpythonのパスが通常ホームディレクトリ内にあるのですが、通らなくなることによります。以下の方法で解消可能です。pyenv-virtualenvでも対応は同様です。
環境: Ubuntu 16.04

# 手順

“`
# 環境名取得
$ pyenv versions

$ vi ~/.pyenv/versions/環境名/bin/pip
“`

一行目は以下のようになっていると思います。

“`
#!/home/旧user名/.pyenv/versions/環境名/bin/python3.*
“`

これはインタプリタ言語において、読み込むインタプリタを指定するいわゆるシバンというものです。IDが古いままですので、新しいものに変更します。

“`
#!/home/新user名/.pyenv/versions/環境名/bin/python3.*
“`

これでpipが動くようになりました。あとは、他のライ

元記事を表示

python 配列の基礎

# python 配列の基礎

複数のデータをまとめて管理するには配列というものを用います。
配列は[要素1, 要素2, …]のように作ります。リストに入っているそれぞれの値のことを要素と呼びます。
配列を使うと、複数の文字列や複数の数値を1つのものとして管理することができます。

# 変数に、複数の文字列を要素に持つリストを代入してください

“`python
fruits = [‘apple’,’banana’,’orange’]
“`

配列も1つの値なので変数に代入することができます。
このとき、リストを代入する変数名は慣習上複数形にすることが多いので、覚えておきましょう。

# インデックス番号が0の要素を出力してください

“`python
print(fruits[0])
“`

“`python:出力結果
apple
“`

リストの要素には、前から順に「0, 1, 2,・・・」と数字が割り振られています。これをインデックス番号といいます。インデックス番号は0から始まる点に注意してください。
リストの各要素は、リスト[インデックス番号]とすることで取得す

元記事を表示

Raspberry PiでPythonからAdafruit_DHTを使おうとしたときに遭遇したエラーについて

# 導入
Raspberry Piで[AM2302](https://akizukidenshi.com/catalog/g/gM-07002/)という温湿度センサを、Adafruit_DHTというパッケージを使用し、Pythonで扱うことを試みるとエラーが生じた。
インストール時のエラーは簡単な操作を行うことによって回避できるが、実際に温度・湿度を取得する際に生じるエラーまでは回避できなかったため、そのエラーまで回避することを行った。

コンピュータはRaspberry Pi 4B/4GB, OSはRaspbian lite, Ubuntu Server20.04の両方でエラーが生じたのを確認し、Pythonはpyenvから3.8.5をインストールし、Pipenvを使用。

# 遭遇したエラー
まずは素直にpipenvからインストールを行おうとする。

“`shell
$ pipenv install Adafruit_DHT
Installing Adafruit_DHT…
Error: An error occurred while installing Adafruit_D

元記事を表示

LeetCode解いた: Valid Palindrome

Palindromeとは回文のことだそうです
https://leetcode.com/problems/valid-palindrome/

問題文:

>Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
>
Note: For the purpose of this problem, we define empty string as valid palindrome.
>
Example 1:
Input: “A man, a plan, a canal: Panama”
Output: true
>
Example 2:
Input: “race a car”
Output: false

>
Constraints:
s consists only of printable ASCII characters.

与えられた文が回文になるか調べます。ただし英数字以外はすべて無視します(スペース、ピリオド、記号

元記事を表示

Python基礎備忘録その2

#記事概要
Pythonを少しでも読めるようになってみようと思い、[参考書](#参考文献)に沿って学習した備忘録になります。
Javaと比較して自身が気になった点、便利と感じた点をまとめております。
その1は[こちら](https://qiita.com/tk10/items/12a3c09b0c0f9a1499f7)
※かなり基礎的な内容になります。

#関数定義
pythonはメソッドのオーバーロードが出来ない代わりに、デフォルト引数を設定可能。

引数無し
def doFunc():
  関数処理

引数あり
def doFunc(a, b, c, …):
  関数処理

#####例
“`java:java
//引数無し
void doFunc1() {
print(“関数が呼び出されました。”);
}

//引数あり
void doFunc2(a, b) {
print(“a + b = ” + (a + b));
}

//return あり
int

元記事を表示

重複組み合わせを列挙(C++)→追記にPythonコード

**9/14更新:コメント欄にてご教示いただいた実装例を本記事末尾に掲載しました。(C++, Python)**

# 記事の概要
 慣れないC++で重複を許す組み合わせを作りたいと思ったので色々調べたのですが、なかなか見つからないですね。重複を許す「順列」とか、重複組み合わせの総数を計算する公式(中学とかで習った$\small_n H_r$)はあるのですが、重複組み合わせを列挙できるコードはなかなか転がっていませんでした。
 調べてみると、Pythonとかだと`itertools`に普通に`combination_with_replacement()`という関数として入ってるようなので、そのコード( https://docs.python.org/ja/3/library/itertools.html )を参考にC++で実装し直してみました。
 何かミスや改善点などございましたらご教示くださると幸いです。

※ちなみに重複を許す「順列」の列挙というのが、自分の実装の中でいうデカルト積に相当するのですが、汎用的なものが見当たらなかったので実装し直しています。

# アルゴリズムの流れ

元記事を表示

「ゼロから作るDeep Learning」自習メモ(読めない用語集)

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。

新しい分野で、新しい単語、用語が出てくるのは当然ですが、それがアルファベットの頭をとった略語だったりすると、非英語民族にはどう読めばいいのかわかりません。
その昔、専門学校でCOBOLを教えたとき、学生が最初につまづいたのが、COBOLで使われている命令の発音と意味でした。発音できないものは覚えられないし、使えない。

と言う事で、

この本の中に出てきた単語をまとめてみました。
読んでいる最中なので、本に出てきた順になっています。読み終えたら、ABC順に並べ直そうかと思っています。

####Python
パイソン もともと「にしきへび」の意味の英単語なので、その発音で読みます。
なんで、蛇? かというと、モンティ・パイソンというTV番組があって・・・(有名な話なので省略)

####NumPy 
ナンパイ これは、もとが数値演算(numerical operation)用のpythonライブラリーということだから、number(ナンバー)

元記事を表示

2chのスレッドをWordCloudで可視化してみる ~形態素解析・WordCloud編~

#はじめに
2chはスレッドのレス一つ一つに目を通すのに時間がかかってしまうので、
スレッド情報をWordCloudで可視化し、簡単に全体像をつかめないかと試みた。

前回の[スクレイピング編](https://qiita.com/hisakichi95/items/54a80f2be693dc34eb25)では所望のスレッド群のレス内容を抽出してきた。
今回は後編として、前回収集したレス内容を形態素解析し、WordCloudでの出力までを行なう。

# 全体の流れ
1. 「ログ速」をスクレイピングして対象スレッドのURLを抽出
2. 2chスレッドをスクレイピングしてレスを抽出
3. [抽出したレス内容をMecabで形態素解析](##Mecabによる形態素解析) ← 今回説明
4. [WordCloudで出力する](##WordC

元記事を表示

[AWS]CloudSearchの”Invalid codepoint” エラーの対応方法

この記事では、[AWS]CloudSearchの”Invalid codepoin xx” エラーの対応方法についてまとめています。
Pythonでコードを書きましたが、ポイントについてはどの言語についても共通だと思います。

# “Invalid codepoint xx” エラーとは?
CloudSearchの検索ドメインのインデックスフィールドにtextまたはtext-array型を設定し、そのフィールドが受け付けることの出来ない文字のアップロードを試みた場合に発生します。例えばtitleというtext型のフィールドに置換文字(SUB: substitute character)が含まれている場合には次のようなエラーメッセージが返されます。

“`
Validation error for field ‘title’: Invalid codepoint 1A
“`

1Aは置換文字という制御文字の一種で、text型のフィールドには不正なコードポイントです。私は扱っていたデータが`1A`や`08`といったコードポイントの文字を含んでいたためにこのエラーに遭いました。

# シ

元記事を表示

RegularGridInterpolatorとinterp2dの引数の順番

ダサダサの備忘録です。

scipy.interpolate.RegularGridInterpolatorの引数やグリッドの指定の順番でいつも混乱するので、テストコードを書いてみた。
なんで混乱するかというと、scipy.interpolate.interp2dとかと、ぱっと見引数の順番が違うように見えてしまうからである。

いや、interp2dのグリッド用の引数は1次元配列二つで、RegularGridInterpolatorの第1引数は複数次元配列でしょ? モノがちがうじゃん、と言われればそのとおりで、かつ、複数次元配列の場合、x(l個)、y(m個)、z(n個)ならshapeは(n, m, l)じゃん、と言われたら返す言葉もないのだが、、つい、逆に書いてしまうのである。<昔から行列弱い

なので、こうやって恥をさらしておけば、次は間違わないかなー、と祈りつつ備忘録。

“`Python
import numpy as np
from scipy.interpolate import RegularGridInterpolator

x_iter = np.array([0,1

元記事を表示

モナリザの写真を自分の顔とシンクロさせて動かしてみる、流行りの深層学習モデルFirst Order Motion Modelについて解説&実装

深層学習の発達は凄まじいもので、1年半くらい前までは一枚の顔の写真の口や目を動かすだけで精一杯だったにも関わらず、最近は自分の顔に合わせて目、口、顔の動きや向きまでも同期できるようなモデルが登場した。それがFirst Order Motion Modelといい、従来の研究と比べても逸脱した研究成果を見せて、世界中から注目されたモデルでもある。

![DFxMMXfkcUbx0mucFzDK1599923755-1599924201.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56557/f4fcebeb-65cd-96c1-7164-9b8d939a424e.gif)

次のツイートの動画を見てほしい。これは学会NeurIPS 2019でのFirst Order Motion Modelについての研究発表の映像である。なんと発表者の顔と同期して、オバマ、トランプ、モナリザなどの写真が動いているのである。音声ありで再生すれば発音とオバマたちの口の動きが同じになっていることが分かる。これほど衝撃的な研

元記事を表示

【Python】HTMLをJSON形式にしたり、簡易的にjQueryのセレクタっぽい解析ができるモジュールを作ってみた。

#きっかけ
唐突にHTMLをJSON形式に変形したい衝動に駆られたので書きました。
ついでにセレクタ機能もどきもつけてみようかと。

このセレクタ機能もどきを使えば[Qiitaのトップページから2行でトレンド情報のJSONを抜き出せます。](https://qiita.com/Cartelet/items/4acf9a3412d30db8f84a#%E4%BD%BF%E7%94%A8%E4%BE%8B)

#構造
・ディクショナリクラスを継承して、辞書としての機能のほか、タグや親(子)要素、テキストなどの情報を個別に保持できるクラス
・HTMLの各タグを上記クラスに加工する関数
・おまけのHTTPリクエストから加工までやってくれる関数

以上

#実装

“`python:html2json.py
import re

class html(dict):
def __init__(self, tag, parent=None, attributes={}):
super(html, self).__init__(attributes)
self

元記事を表示

Pythonでシングルトンパターン

クラスにシングルトンパターンを実装するSingletonMetaメタクラスと、これを適用したMySingletonクラスのコード例。

“`ex_meta_singleton.pyt
class SingletonMeta(type):
def __init__(cls, name, bases, disc, **kwargs):
cls.__instance = name

def __call__(cls, *args, **kwargs):
if cls.__instance is None:
cls.__instance = super().__call__(*args, **kwargs)
return cls.__instance

class MySingleton(metaclass = SingletonMeta):
pass
“`
独習python 第11章オブジェクト指向構文 より引用

元記事を表示

pythonのディスクリプター

ディスクリプターとは下記のようなメソッドを備えたクラスのことである。

|メソッド|呼び出しタイミング|
|—|—|
|__get__(self,obj,type)|アトリビュートを取得するとき|
|__set__(self,obj,value)|アトリビュートを設定するとき|
|__delete__(self,obj)|アトリビュートを削除するとき|

__getattr__, __setattr__などの特殊メソッドとは異なるメソッドであるため、ディスクリプターとは区別して認識する必要がある。

・アトリビュート操作に関わる挙動を別クラスに切り出せる(=クラスをまたがるアトリビュート関連の機能を再利用できる。)
・特定のアトリビュートに対してのみ適用される挙動を定義できる。(__getattr__, __setattr__では、そのクラスのすべてのアトリビュートに影響)

な丼メリットがあります。ディスクリプターは、プロパティをはじめ、クラス/静的メソッド、superなどの背後でも利用されています。

“`descriptor_basic.py
#ディスクリプターの

元記事を表示

__bool__メソッドを用いたオブジェクトの真偽判定条件の実装

“`reserve_bool.py

import math

class Coordinate:
def __init__(self, x, y):
self.x = x
self.y = y

def __bool__(self):
print(‘__bool__’)
return self.x != 0 or self.y != 0
def __len__(self):
print(‘__len__’)
return int(math.sqrt(self.x **2 + self.y **2))

if __name__ == ‘__main__’:
c = Coordinate(0,0)
if c:
print(‘c is True.’)
else:
print(‘c is False.’)
“`

独習python 第11章オブジェクト指向構文 より引用

元記事を表示

Tello(トイドローン)で動画ストリーミングの受信

# Telloをpythonで動かす。
公式の[Tello-python](https://github.com/dji-sdk/Tello-Python)を参考にすれば割と簡単にpythonで制御プログラムをかけそうだったが,カメラ映像を受信するのにハマったのでメモ。

リポジトリではh264decoderをビルドして使えと書いているが,自分のmac環境ではいろいろ試したがうまくビルドできなかった。
特にPython3環境ではビルドに修正が必要になる模様。
[(補足)Python3で「Tello_Video」を動かす](https://qiita.com/hsgucci/items/cbcb8da6941a9981c11e)

[トイドローン Tello をMacで操作&カメラ映像をOpenCVで受信してみる](https://qiita.com/mozzio369/items/8e0fb12dc30c493f5cc4)
上記の記事ではストリームを整形したあとopencvでデコードしている。
直接ストリームをデコードするとノイズだらけになると記事にあるが、試しにそのままやってみると

元記事を表示

統合開発環境(IDE) vs. 仮想環境(virtual environment)

## はじめに
ふとあることに気がつきました。

「結局、**環境**って何なんだ?」

調べてみると自分がきちんと理解できていなかったことがわかったので備忘録として残しておくことにしました。

## 環境とは
[わわわIT用語辞典](https://wa3.i-3-i.info/word11028.html)によると、**「何かをする場」**のことである、とのことです。それは多くの場合、コンピュータのハードウェアやハードディスクなどの**ストレージ**上に構築されるものです。多くの場合はOSが実行され、その上にWebブラウザやOffice系、Visual StudioやAnacondaといったアプリケーションが実行されます。

そして、特にソフトウェアやシステムを開発する環境を**開発環境**と呼びます。開発環境には開発するための機材やネットワーク、ソフトウェアが揃っている必要があります。

## 統合開発環境とは
統合開発環境(Integrated Development Environment)とは、**プログラミングするときに必要なソフトウェアを1つにパッケージしたソフトウェア

元記事を表示

Pythonに関する個人的Tips(文字列、ログまわり)

#文字列まわり

##format、%記法まわり
###formatで使いやすい書き方

“`python
‘{0}, {1}, {2}…’.format(変数1, 変数2, 変数3….) #インデックス(添え字)で指定
“`

###f文字列
f文字列(f-strings)は文字列リテラルの前にfまたはFを置く(f’xxx’, F’xxx’)。文字列中の置換フィールドに変数をそのまま指定できる。

“`python
print(f'{a} and {b}’)
# 123 and abc
“`

###%記法

“`python
print(‘from %s to %s'(year1, year2))
“`

#入出力まわり

##一度止めて分岐させる

コマンドラインからの実行の場合、ここで一度実行が停止し数字の入力が求められる。
数値でないものが入力された場合、そこでプログラムは終了する。

“`python
try:
kai = int(input(‘実行は何回目?半角数字で入力:’))
except ValueError:
print(‘有

元記事を表示

Django アプリケーションに AWS SSO でシングルサインオンする

# はじめに

AWS SSO がようやく東京リージョンで利用できるようになったのでDjangoを使ってシングルサインオンを試してみました。

[ソースコード – GitHub](https://github.com/daisukeArk/example-awssso)

## 前提条件や動作環境

– macOS 10.15.6
– Python 3.7.8
– Django 3.1.1
– python3-saml 1.9.0
– django-sslserver 0.22

## 概要

AWS SSOによるカスタム SAML 2.0 アプリケーションを作成します。
必要最低限動くことを確認するため、エラーハンドリングは行ってません。

## 方針等

– AWS SSOのIDソースには`AWS SSO IDストア`を利用する
– 開発言語には`Python`を選択する
– Webアプリケーションフレームワークには`Django`を利用する
– 開発時にもHTTPSによる通信を許可する

## セットアップ

“`Shell
# 仮想環境の作成
$ python -m venv

元記事を表示

OTHERカテゴリの最新記事