Python関連のことを調べてみた2021年01月20日

Python関連のことを調べてみた2021年01月20日

Pythonビルトインの分数を扱うfractionsパッケージについて軽く調べてみた。

今更ながら分数を扱うPythonビルトインのfractionsパッケージという存在を知ったので、どんな挙動をするものなのかを軽く調べておきます。

# 記事内で使う環境

Python 3.8.6を使います。残りはビルトインのfractionsパッケージだけ使っていきます。

# 基本の使い方

まずは扱うためにfractionsパッケージのimportが必要になります。特にFractionクラスが利用のメインとなるため、そちらをimportします。

“`py
from fractions import Fraction
“`

Fraction(分数)クラスはnumerator(分子)という第一引数とdenominator(分母)という第二引数を受け付けます。

“`py
f = Fraction(numerator=3, denominator=4)
“`

インタラクティブシェルやJupyter上でFractionクラスのインスタンスを表示してみると、分子と分母の値を含んだ形でrepr的に表示されます。

“`py
>>> f

Fraction(3, 4)
“`

元記事を表示

Flask-Cachingを使ってPython + Flask でページキャッシュ

# Flask-Cachingを使ってPython + Flask でページキャッシュ

## パッケージインストール
[Flask-Caching](https://flask-caching.readthedocs.io/en/latest/)パッケージを使う

“`
$ pip install Flask-Caching
“`

## Blueprint で使う方法

ディレクトリ構成
Blueprintのディレクトリ構成 の説明は[こちら](https://qiita.com/morita-toyscreation/items/8471a2ccc481a840c372)

“`HTML
weekend-hackathon/
|– app
| |– views
| | `– sample.py
| |– cache.py
| `– __init__.py
|– app.py
|– Dockerfile
`– requirements.txt
“`
*cache.py*

`simple` を使うとページキ

元記事を表示

【メモ】matplotlibとzstdのコンフリクト

何気にハマったので、メモ。
ただし、この方法がベストなのかは不明。

# 環境
– Windows10 Pro 64bit
– Anaconda

# 現象
– zstdが見つからない
– zstdはcondaでmatplotlibをインストールしたときに、一緒にインストールされる

“`text
ModuleNotFoundError: No module named ‘zstd’
“`

# 確認作業
## 1.手動でzstdをアンイストール/インストール

“`text
(hogehoge) C:\test> conda uninstall zstd
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

environment location: C:\Users\hoge\Anaconda3\envs\hogehoge

removed specs:
– zstd

The following package

元記事を表示

[Oracle ADS] 回帰と分類はどう決まるのか?

Oracle Data Science Cloudで使用できる、adsについて。

# 結論

targetとして指定したSeriesの型がfloatであれば回帰。intであれば分類。

# 決定ロジック

### パッケージの場所

adsパッケージのコードを見ていく。

“`py

import sys

sys.path

[‘/tmp/dask-worker-space/worker-_4k3q1mv’,
‘/home/datascience/conda/mlcpuv1/lib/python36.zip’,
‘/home/datascience/conda/mlcpuv1/lib/python3.6’,
‘/home/datascience/conda/mlcpuv1/lib/python3.6/lib-dynload’,
”,
‘/home/datascience/conda/mlcpuv1/lib/python3.6/site-packages’, <=ここ '/home/datascience/conda/mlcpuv1/lib/python3.6/sit

元記事を表示

OpenMayaのイテレータを使って階層名を取得する

#はじめに

選択した階層以下のノード名を取得したいとします。
まず最初に思いつくのが、listRelativesコマンドだと思います。
listRelativesコマンドを使えば、子階層が取得できます。

https://help.autodesk.com/view/MAYAUL/2020/JPN/index.html?contextId=COMMANDS-INDEX

“`Python
cmds.listRelatives( ad=True, c=True, typ=”transform” )
“`

ただこの方法で取得すると、リスト内の順番が階層順でないため使いにくいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491414/606060c2-2805-87c4-aa13-f94cb20581bc.png)

“`Python
# 結果: [u’_03′, u’_02′, u’_01′, u’_05′, u’_07′, u’_06′, u’_04′] #
“`

元記事を表示

高次元データの分布の密度を反映した埋め込み手法DensMAP

なんかまた新しい埋め込み手法が提案された。次から次に。

[Narayan, A., Berger, B. & Cho, H. “Assessing single-cell transcriptomic variability through density-preserving data visualization.” Nature Biotechnology (2021)](https://www.nature.com/articles/s41587-020-00801-7)

見逃していたけど結構前にbioRxivで提案されていて、すでにUMAPの公式実装に機能が追加されている。

この論文ではt-SNE、UMAPの目的関数に、後述する「ある項」を追加して改良された新手法、Den-SNE、DensMAPを提案。

解決を試みている問題は、t-SNEやUMAPにおいて「高次元空間における密度」の情報が無視されてしまいがちな点。

以下具体的な例で見てみる。

# 具体例

## 密度が異なる6クラスタの埋め込み

UMAPの最新バージョンをインストールすると、DensMAPのアルゴ

元記事を表示

Stable BaselinesのPPO2で自分で定義したネットワークを使いたい

[Stable Baselinesを使ってスーパーマリオブラザーズ1-1をクリアするまで](https://qiita.com/hrs1985/items/871ca5d037d73558bfca)ではStable Baselinesに備え付けられたPPO2を使って学習を行いました。

PPO2では’CNNPolicy’という名前を与えているだけで、具体的にどのようなアーキテクチャのネットワークを用いているかはよくわかりません(一応 PPO の元論文に準拠しているという記述はありますが)。また、そのネットワークを改変したい場合どのようにすればいいかがわからなかったので[本家のコード](https://github.com/hill-a/stable-baselines)を追いかけてみました。

“`ppo2.py
class PPO2(ActorCriticRLModel):
def __init__(self, policy, env, gamma=0.99, n_steps=128, ent_coef=0.01, learning_rate=2.5e-4, vf_coef

元記事を表示

Pythonのクラスの書き方

#目的
pythonを勉強しているうえで、クラスの書き方に理解が一度で追いつかなかったので、アウトプットして定着させる。

#クラスとインスタンス

– クラス・・・プログラミングにおいて、「モノ」を生成するためのレシピ的なもの

– インスタンス・・・レシピをもとに生成された「モノ」

##クラスの宣言方法
クラスを扱うには、宣言する必要がある。

“`python:sample.py
#クラスの宣言
class SampleClass():
“`

##クラスの使い方
クラスの中で関数を定義することができる。
クラスの中で定義された関数のことを**メソッド**という。

メソッドの定義の方法は通常の関数と同じだが、第1引数にselfを使う。

“`python:sample.py
#クラスの宣言
class SampleClass():
def hello(self):
print(“Hello World!”)
“`

##インスタンス変数の生成
インスタンスには色々な情報を定義することができる。
八百屋さんで売っていそうな品物を例にしてみる。

元記事を表示

2021年にもなって pyenv-virtualenv の可能性を主張してみる

# なにこれ?
pipenvやpoetryを皆が使っている2021年に、とある目的にpyenv-virtualenvがぴったりということに気が付いたので、紹介します。

# pyenv-virtualenv って何?
pythonの仮想環境構築ツールの一つです。pyenvの拡張機能です。通常のpyenvでは`pyenv local 3.8.7`のように、pyenv公式が用意したバージョン名を指定して環境を制御しますが、pyenv-virtualenvを使うと`pyenv local saishinban`のように好きな環境名が指定でき、この環境名で環境を切り分けることができます。

Qiita内にpyenv-virtualenvの記事はたくさんあるので、これくらいの雑な説明にとどめます。より詳しく知りたくなったら、[公式のREADME](https://github.com/pyenv/pyenv-virtualenv)や他の記事を参考にしてください。

# 何に気づいたの?
皆さんは、趣味や仕事で俺が考えた最強のCLIツールをpythonで書いていることでしょう。そして、今風に(20

元記事を表示

スクレイピングで理想の物件探し!物件から目的地まで徒歩何分か自動取得するの巻

## はじめに

はじめまして、来年度引っ越しを控えているものです。
「電車が苦手なので通勤先から徒歩圏内がいいな~」
そう思いながら、物件探しをしていたのですが、、、
**指定先から物件までの距離を表示する機能が無い!**
SUUMOに地図から探す機能はあるのですが、物件の詳細をリストで見れなくて使いづらい。。
ということで、無いなら作ればいいじゃないかの精神でやっていきたいと思います。
今回初めてスクレイピングに触れた完全な初心者なので生暖かく見守ってください。
コードが恐ろしく汚いですが、お許しを>< ここをこうした方がいい!などご指摘お待ちしております! ## 最終目的 指定した住所から物件まで徒歩x分以内の物件の家賃(管理費共益費込み)、徒歩何分か、物件名、家賃、階数、間取り、専有面積、その物件の賃貸サイト、googlemapのURLを取得すること。 また、相見積もりをしないとカモられる可能性があるので、複数の賃貸サイトで同物件の情報を取得する。 ## 本日のゴール地点 指定した住所から物件まで徒歩x分以内の物件の家賃(管理費共益費込み)、徒歩何分か、物件名、家賃、

元記事を表示

playwright-pythonではwaitForNavigationの代わりにexpect_navigationを使う

## in JS

Playwright(JS)だと、画面遷移を待つには、

* waitForNavigationを、画面遷移が発生するようなイベントの前に仕掛ける
* 画面遷移が発生するようなイベントのあとで、waitForNavigationの結果を待つ

というのが定石。

“`js
const navigationPromise = page.waitForNavigation();
await page.click(‘input[type=”submit”]’); // 画面遷移が発生するようなイベント
await navigationPromise;
“`

あるいはもっと単純に

“`js
await Promise.all([
page.waitForNavigation(),
page.click(‘input[type=”submit”]’),
]);
“`

こう書く。

## in Python

さて、[playwright-python](https://github.com/microsoft/playwright-python)のSyn

元記事を表示

[Python]モジュールエラーへの対処方法

夜通し環境構築に取り組むも、モジュールエラー(ImportError)が解消されなくて廃人になりかけた。エラーの原因はパスが違うという洗礼であったり、使いたいライブラリが使う別のライブラリが存在しなかったり、使っているライブラリが古かったりしたわけだけど、悩んでいるときはそもそもそういう問題が本当に起きているのかどうかすら曖昧なまま試行錯誤していた。このような苦痛をもう二度と味わわないためには結局どうすれば良いのか? 環境構築の学びをここに記録する。

1. 実行スクリプトはどこのパスにあるか?
2. 実行スクリプトが参照しようとしているライブラリのパスはどこか?
3. そのライブラリに必要なライブラリはあるのか?
4. それらのライブラリのバージョンは正しいか?

なお今回のケースとしては、GCPでJenkinsサーバーを作り、BigQueryを操作するpythonスクリプトをGithubから取得して定期実行することを想定する。

#1. 実行スクリプトはどこのパスにあるか?
エラーが起きているスクリプトがどこで実行されているのかを知ることで、ファイルそのものがその環境で動くかどうか

元記事を表示

深層学習で3次元の偏微分方程式を解く。

# 環境と環境構築
Python == 3.6.8
TensorFlow == 1.1.15

今回はTensorFlowのバージョン1(TF1)を使ってコード開発をした。
TF1はPython3.6でしか動かないので、まずはPython3.6.8をインストールした。
Numpy, Scipy, matplotlib, pyDOEはPyPI(pipコマンド)からインストールする。
# 前提条件

今回は拡散方程式を解く。
拡散方程式は
$u_t – (u_{xx} + u_{yy})=0$
初期条件は以下のGaussianを採用する。
$u(x,y,0)=exp(-(x^2+y^2))$

Gaussianは以下のような局所的な解になっている。

“`python
#Data generation———————————–
xi = np.linspace(-5, 5, 100)
yi = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(xi, yi)
ui = np.exp(-(X**2 + Y**2

元記事を表示

CSVファイルをAWS DynamoDBに自動更新する

#はじめに
私はよく、スクレイピングで収集したデータをCSVファイルで出力しています。
しかし、データを効率よく使うには、CSVファイル内のデータをデータベースなどにストアしなくてはいけません。
せっかくデータ収集を省力化しても、データベースの運用に時間を取られるのは苦痛ですよね?
その悩み、クラウドのデータベースサービスで解決しましょう!

本投稿では、AWS の DynamoDB にCSVファイル内のデータを自動で反映する方法をご紹介します。
これで煩わしいデータベース更新業務とはオサラバです!

#目次

– [AWS CLI の設定](#aws-cli-の設定)
– [DynamoDBのテーブル更新用コード (Python)](#dynamodbのテーブル更新用コード-python)
– [方法1:仮想マシン(VM)からcronで定期実行](#方法1仮想マシンvmからcronで定期実行)
– [方法2:GitHub Actions](#方法2github-actions)
– [二つの方法の比較](#二つの方法の比較)

今回は、**既にAWSで自動更新したいDynamoDBが

元記事を表示

pythonエンジニア認定試験

この度pythonエンジニア認定試験を受験しました。
試験は合格できたのですが、色々と勉強になったことがあったので備忘録程度にに書き残します。
誰かの役に立つとうれしいです。
出題傾向があったものを振り返ります。

(出題範囲のpythonチュートリアルを見ながら振り返る)

2章 インタープリタの使い方
2.1 起動
これには3パターン有り、下のようになっています。

1.シェルでpythonと入力する。
2.python -c コマンド [引数]
3.python -m モジュール名 [引数]

2.はインタープリタを起動と一緒にコマンドにある文を実行する。
3.は指定したモジュールのソースファイルを、フルパスで指定して 起動したかのように実行できます。

import sysを実行することでargvに割り当てられたリストにアクセスできる。
引数はスクリプトファイルを含めて要素数[0]から順に格納されている。
![sys.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/849364/28ed6f18

元記事を表示

Redmine User一覧をDataFrameで取得

クラスの一部分ですが切り出して記載。
コメント、、、ちゃんと書く(TODO)

Resourceからの情報取り出しがちょっと特殊な感じなので
ここに書いておく。

もっといい方法がありましたら教えてください。

“`python

########################################################
# ユーザID一覧作成
########################################################
def getAllRedmineUsers(self):
”’

Args:

Returns:
df: DataFrame Redmine登録全ユーザを格納したDataFrame

Raises:
TypeError: 引数型の不備
Exception: ID登録時の例外

Examples:

元記事を表示

自宅内の見守りカメラをアップデートした:②お試し動作で課題にぶつかった編

## はじめに
本記事は[こちら](https://qiita.com/tenkoh/items/6aeed1bf767ed0c2594e)のパート②にあたります。
もし内容に興味を持たれましたら、他のパートもご覧頂けると幸いです。(順次執筆中…)

## 要約
– 前回(ハードウェア準備編)、ついに念願のRasberryPiを使って見守りカメラを起動に成功!
– しかし課題が発覚。さてどうしよう :thinking:
– 改修ポイントを整理してみよう。

## 何が課題だったか
#### カメラ画像を取得しきれない時がある
数秒に一度画像を取得する仕様としたのですが、時折画像がブラックアウトしたり、画角の一部だけが引き延ばされたような画像が取得されることがありました。
Python3の`Opencv-python`ライブラリを使ってカメラ

元記事を表示

Streamlitでデータを可視化する

# 概要

– データをインタラクティブに可視化できるWebアプリを作りたい
– D3.jsなどを生で使うのはちょっと重たい(技術力的に)
– そもそもWeb系の知識が謙遜抜きでほぼ0(Vue?React?なにそれ美味しいの?)
– じゃあ[Streamlit](https://www.streamlit.io/)使ってみよう

# 環境構築

こんな記事読まずに[公式ドキュメント](https://docs.streamlit.io/en/stable/)を読もうぜ。

## インストール

pipでインストールします。

“`bash
$ pip install streamlit
“`

## 動作確認

“`bash
$ streamlit hello
“`

これでローカルに8063番ポート(デフォルト設定)でwebサーバが立ちます。
ということで、ブラウザで`http://localhost:8063/`にアクセスするとサンプルページを確認できます。

ちなみに、streamlitをimportしたpythonファイルでWebアプリを立ち上げたい場合には、以下のよう

元記事を表示

【Python】Udemyでif文について学んだのでアウトプットするよ

Udemyの超人気コース[『100 Days of Code – The Complete Python Pro Bootcamp』][4]にてPythonを学んでいます!

ここでの学習のアウトプットとしてつまづいたところなどを中心にQiitaにまとめていきます :muscle:

今日はPythonの条件分岐であるif文の書き方について学びました!

## 使用環境
Python3.8
VScode

## Pythonのif文について

ゴタゴタと語るのは煩わしいので、早速コードから。

**▼課題①**

“`py
number = int(input(“Which number do you want to choose?”))

if number % 2 == 0:
print(“This is an even number.”)
else:
print(“This is an odd number.”)
“`
このコードでは、好きな数字を入力して、その数が偶数(even number)である場合は”これは偶数です(This is an even

元記事を表示

Pythonで3次元空間認識を自作した話

# はじめに

まずはものから
こちらがそれです

見ての通り、画像から3

元記事を表示

OTHERカテゴリの最新記事