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

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

【手順メモ】Python3+OpenSSLをUbuntu上でローカルインストールする

管理者権限がなくてもOpenSSLエラーを解決しつつPython3をローカルインストールする手順。

目次

元記事を表示

pythonをインストールする

##前書き
###僕はプログラミングを独学で始めましたがこの記事の最後のところまで習得するのに、とても時間がかかりました。とても難しいので舐めてかからない方がいいです。
###僕はそれを_お手伝い_します。
##はじめに
###この記事はMacOSでのpythonの導入の仕方です
###この記事はあくまで私のおすすめしているやり方であってこの方法が気に入らない場合は他のサイトをご覧ください
###この記事は他のサイトの文章をリスペクト部分があります。

##参考にしたサイト

[Pythonの開発環境を用意しよう!(Mac)](https://prog-8.com/docs/python-env “動作確認環”)
##目次
[動作確認環境](https://qiita.com/drafts/3840d0208306607a494a/edit#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E7%92%B0%E5%A2%83 “動作確認環”)
[Homebrewインストール](https://qiita.com/drafts/3840d0208306607a

元記事を表示

西暦から閏年か判断するプログラム【Python】

この記事では、
西暦から閏年かどうか判断するプログラム
を書いていきます。

##うるう年とは
閏年(じゅんねん、うるうどし、英語: leap year、intercalary year)とは、閏のある年である。これに対し、閏年ではない年を平年(英語: common year)と呼ぶ。
閏年 – Wikipedia

##求め方
閏年かどうか判断するには3つの条件があります。

1. 西暦年が4で割り切れる年は(原則として)閏年
2. ただし、西暦年が100で割り切れる年は(原則として)平年、閏年ではない
3. ただし、西暦年が400で割り切れる年は必ず閏年

この条件のもとに、プログラムを書いていきます。

##コードを書く
**関数内で条件分岐をする**
閏年という意味の“is_leap_year”という関数に、nを引き数として渡します。
nは西暦です。

結果は、Trueが閏年、Falseがそうではない年として、returnで返します。

“`leap_year.py
def is_l

元記事を表示

Pythonプログラミング:BeautifulSoup4を使って米YahooFinanceから企業情報を取得(クローリング)してみた

# はじめに

前回の記事([Pythonプログラミング:SeleniumとBeautifulSoup4を使ってニュース記事を取得(クローリング)してみた](https://qiita.com/Blaster36/items/626940ff2b6b21caf56f))の続きです。

ニュース記事に登場する企業について、その概要(事業内容、役員、株主、etc.)を取得する必要が追加で発生した。

というわけで、Pythonプログラムで「英語」企業情報を取得する処理を実現してみようと思います。
今回、情報Sourceとしては**[Yahoo! Finance](https://finance.yahoo.com/)**を対象とします。

※本稿執筆時点(2020/11/02)の情報に基づき、Code紹介と実行例を示します。

## 本稿で紹介すること

– Yahoo! FinanceからのProfileの取得
– Ex.) https://finance.yahoo.com/quote/AAPL/profile?p=AAPL
– Yahoo! FinanceからのHoldersの取

元記事を表示

【Anaconda3】よく使うコマンド まとめ

#はじめに
よく使うAnaconda3コマンドのまとめです.

# 仮想環境の切り替え
“`
$ conda activate # 有効化
$ conda deactivate # 無効化
“`

# 仮想環境の一覧を表示
“`
$ conda info -e
$ conda info –envs
“`

# 仮想環境の作成
“`
$ conda create -n
$ conda create -n python=
$ conda create -n python= =
“`
\という名前の仮想環境を作成する.
\は省略可.指定されていない場合,最新のバージョンがインストールされる.

# 仮想環境の削除
“`
$ conda remove -n –all
“`

元記事を表示

pythonでymlからcommandをloadして実行する

yml fileからcommandを読み取るプログラムを書いたので掲載しておきます
### yml file
“`
cmd1:
command: ls -l
type: ls

cmd2:
command: ls -a
type: ls
“`

### python code
“`
import subprocess
import yaml

with open(‘sample.yml’) as file:
obj = yaml.safe_load(file)

cmd1 = obj[‘cmd1’][‘command’]
types = obj[‘cmd1’][‘type’]

print(‘実行モードは’, types,’です。’)
print(cmd1)
subprocess.run(cmd1, shell=True)

print(‘\n’)

cmd2 = obj[‘cmd2’][‘command’]
types = obj[‘cmd2’][‘type’]

print(‘実行モードは’, types

元記事を表示

【0】UbuntuにAnacondaで構築するTensorFlow-GPU環境構築

#ゴール
Ubuntu Desktop/Serverをインストールした所から、TensorFlowによるGPU計算ができる環境をAnacondaで構築する。

#対象者
Linuxに不慣れでAnaconda等の仮想環境もよくわからないという深層学習エンジニア

#機材
OS: Ubuntu 18.04LTS Desktop/Server

#この記事のモチベーション
 私自身、Ubuntu Serverにおいて深層学習(Deep Learning)を行いたく、TensorFlowのGPU版を動かすための環境構築を行いましたが、情報を集めることや注意するポイントの多さに圧倒されました。したがって自身の備忘録のため、また、同じ志を持つ人たちに向けてまとまった情報を提供することで、様々なページの往復や順番の違いなどで知識のつなぎ合わせに苦しみを減らせればと考えたため、知識や反省点を環境構築の過程の中で説明したドキュメントを作成しました。

#ドキュメントの構成
環境構築を4つの条件に分けました。
煩雑にならないように一つの条件に対して一つの記事で説明します。
この章を含めてドキュメントは全5

元記事を表示

Pythonで入門 遺伝的アルゴリズム

– 遺伝的アルゴリズムについて、基本的で簡単なところを勉強として書いていきます。
– 理解を深めるために遺伝的アルゴリズムを実際にPythonでコードを書いて、いくつか問題を解く形で動かしていきます。

# 遺伝的アルゴリズムとは

英語ではgenetic algorithm。初出は1975年、ミシガン大学のジョン・H・ホランド教授によって提案されたそうです。

– [遺伝的アルゴリズム – Wikipedia](https://ja.wikipedia.org/wiki/%E9%81%BA%E4%BC%9D%E7%9A%84%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0)
– [ジョン・H・ホランド – Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A7%E3%83%B3%E3%83%BBH%E3%83%BB%E3%83%9B%E3%83%A9%E3%83%B3%E3%83%89)

ある程度、各個体で個別となる属性を持たせた「遺伝子」「染色体」扱いの要素

元記事を表示

Vega-Liteを使ってcsvファイルを可視化したい!

#きっかけ#
 研究室でVega-Liteを使うことになったのですが、チュートリアル終了後なにから手をつければいいのかわからず、かなり手こずったので備忘録+誰かの助けになれば幸いです。

#目的#
###手持ちのcsvファイルをVega-Liteを使って可視化したい###
 [チュートリアル](https://vega.github.io/vega-lite/tutorials/getting_started.html)は公式で提供されている[オンラインのエディタ](https://vega.github.io/editor/#/edited)を使うことで問題なく進められるのですが、自分で持っているファイルをアップロードする方法が無いのか、自分が見つけられなかっただけなのかわかりませんが、できなかったためローカルでVega-Liteを使う方法を探しました

#手順#
色々調べた結果

+ pyhtonでVega-Liteを使える
+ JupyterLabを使うと色々便利そう

というわけでJupyterLabでVega-Liteを使おうとしたのですが、結論から言うと何故か自分の環境だと

元記事を表示

Pythonの配列でつまづいた話

最近Pythonを触る中で、個人的に「Python、そうだったのか」となった配列の話。
(ちなみに自分はこれでつまづいて1, 2時間溶かした過去がある)

## 配列追加のappend / +=
配列に文字列を追加しようとする時の書き方として、以下はそれぞれ違う。

“`python
arr = []
arr += “hello” # => [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
arr.append(“hello”) # => [‘hello’]
“`
`+=`は配列の連結でありオペランドとしてiterableなオブジェクトを受け取るので、文字列は文字の配列として扱われて一文字ずつ配列に格納される。
例えばint型を渡すと、もちろんこれはiterableではないのでエラーとなる。

## Rubyは?
細かく調べてないが、irbで確認するとRubyも同じような感じっぽい。

“`Ruby
arr = []
arr += ‘hello’ # => TypeError: no implicit conversion of String into

元記事を表示

BMIと標準体重まであと何kgか求めるプログラム【Python】

この記事では、
身長と体重から、BMIと標準体重まであと何kgか求めるプログラム
を書いていきます。

##BMI / 標準体重とは
ボディマス指数(ボディマスしすう)とは、体重と身長の関係から算出される、ヒトの肥満度を表す体格指数である。一般にBMI (Body Mass Index) と呼ばれる。
ボディマス指数 – Wikipedia

標準体重とは、ヒトが肥満でもやせでもなく、一定期間内の死亡率や罹患率が有意に低いなど、最も健康的に生活ができると統計的に認定された理想的な体重のことであり、年齢・身長・体脂肪率といった要素の全部、あるいは一部から求めるものである。
標準体重 – Wikipedia

##求め方
**BMI**
![BMI = w ÷ (h × h)](https://wikimedia.org/api/rest_v1/media/math/render/svg/5

元記事を表示

pip list がいつまでも終わらない。

#はじめに
Raspberry Pi Zero WのPython3を更新しようと、Python3.9をビルドしてインストールしました。
すると、`pip list`でインストール済みパッケージ一覧を確認する際に、リストもエラーも表示されずに止まってしまう症状に遭遇しました。Zeroだから時間がかかるのかな?と思い数時間放置してみましたが、変化ありませんでした。
ネットで検索してもズバリの回答が見当たらなかったため、ここに解決法を記します。

最後に追記あります。
この症状は、システムをバックアップを作成して複製後のSDカードで起動したり、host名を変更したことにより、乱数生成機の乱数が枯渇していたことが根本原因でした。

##症状
`pip list`でインストール済みパッケージ一覧を確認すると、何も表示されません。
^Cで止めると、デバッグ情報がズラズラと出てきて、`self._config = {‘authkey’: AuthenticationString(os.urandom(32))…`が含まれるあたりでTerminateした事がわかります。

##確認
`python

元記事を表示

Python3からCloud Storageを利用(入門)

# はじめに
## BytesIOとは
BytesIOとは、メモリ上でバイナリデータを扱うための機能であり、Python の標準ライブラリ io に含まれています。バイナリデータとは主に画像や音声などのデータのことを示しています。(C#でいうMemoryStreamのようなものです)

# サービスアカウントの作成
[Google Cloud Platform](https://console.cloud.google.com/)にアクセスしてサービスアカウントの作成(API)を行います。
ナビゲーションメニュー > APIとサービス > 認証情報 をクリックし画面に移動します。
そしてサービスアカウントを管理をクリックします。
![GCP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/817075/18512082-f5d6-4f93-faa8-bb2ddaaa26be.png)

次の画面ではサービスアカウントを作成をクリックします。
![GCP.png](https://qiita-image-s

元記事を表示

Numpyの型ヒント備忘録(NDArray)

`Numpy` の型ヒント・型チェックについて、ちょっとハマったので備忘録として残します

今回使っているのは `nptyping` という numpy 用の型付けのためのライブラリです。リポジトリ: [GitHub – ramonhagenaars/nptyping](https://github.com/ramonhagenaars/nptyping)

# ベクトルのとき
下の二つは要素が `int` でなくても `True` となります。**(`Any` は標準ライブラリの `typing` からインポートします)**

“`python
vec = np.array([1, 2, 3], int)
isinstance(vec, NDArray[3, int]) # True
isinstance(vec, NDArray[(3,), int]) # True
isinstance(vec, NDArray[(3, …), int]) # True
isinstance(vec, NDArray[(3,), Any]) # True
isinstance(vec, ND

元記事を表示

借金完済まで何ヶ月?【Python】

今回の記事では、
借金総額と年利、月々の返済額から、あと何ヶ月で返済し終わるかを求めるプログラム
を書いていきます。

##実行環境
– MacOS
– Python 3.7.5

##求め方
**1, 関数を作る**
まずは、関数を作ります。
debt(借金)という関数に、引数を3つ渡します.
1つ目には借金額 → borrowed
2つ目には利率(年利) → annual
3つ目には返済額 → repayment

“`debt.py
def debt(borrowed, annual, repayment):
“`

**2, 完済するまでループするWhile文**
finishedがTrueになるまでループする、While文を書いていきます。
まず、FinishedをFalseで定義してからWhile文を書きます。

“`debt(2).py
def debt(borrowed, annual, repayment):
finished = False

while finished == False:
“`

**3, 残高が返済額より多いかどうか(

元記事を表示

Pythonで最小二乗法をやってみた

#はじめに
どうも。今回は最小二乗法をPythonで実装する方法を記事にしてみました。先に述べておきますが、以下の数学の知識がないとチンプンカンプンだと思いますのであしからず。
###必要な知識
・1次関数や2次関数などの基本的な関数
・微分と偏微分
・総数(Σ)、平均について

高校生までの数学の知識があれば、特に問題はないと思います。では、早速どんなものか見てみましょうか。
#最小二乗法とは
こんなデータがあったとします。(下のグラフ)
![data_least_squares_method.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/835335/5ee9bafe-2317-4b51-08af-9f4975af37b4.png)
「それぞれの点からの誤差を最小にした1次関数を描いて下さい」と言われても、無理ですよね。これを可能にする方法が**最小二乗法(最小自乗法)**です。測定データ$y$がモデル関数(元となる関数)$f(x)$と誤差$\varepsilon$の和であるときに使用できます。式で

元記事を表示

スクレイピング:Webサイトをローカルに保存

#スクレイピング:Webサイトをローカルに保存

備忘録。バックアップ目的のみ。
太陽電磁波?太陽磁気嵐?のような世界的電源停止に備えて。microCMSにはバックアップ機能がないため実施。

###コード

“`python
import os
from urllib.request import *

# 記事カテゴリー毎のURL
#base_url = “https://benzoinfojapan.org/patients-article/”
#base_url = “https://benzoinfojapan.org/doctors-article/”
base_url = “https://benzoinfojapan.org/medias-article/”

# 保存先ファイル名接頭詞
#prefix = “patients-article”
#prefix = “doctors-article”
prefix = “medias-article”

num = 1

# 各カテゴリ記事上限値をwhile num <= Xに設定. 以下2020年10月現在値. #

元記事を表示

Pythonで簡単なGUIアプリを作成する

最近AIや分析等の分野で活躍しているPythonですが、普通のデスクトップアプリケーションの作成にも利用可能です。

今回はPythonに標準で付属しているGUIライブラリ「Tkinter(ティーキンター、ティケーインター)」を利用して、入力した値をターミナルに書き出す簡単なGUIアプリを作成します。

## 使うもの

私が動作を確認した構成は以下の通りです

– Python 3.7.3

IDEはVisual Studio Codeを利用しています。

## Python のインストール

公式サイトに行ってダウンロード&インストールを行ってください。

## とりあえずTkinterを使う

Visual Studio Codeにて「新しいファイル」をクリックして、「form.py」と名前を付けて保存してください。

プログラムの先頭にtkinterを利用しますよという宣言を記述します。

“`python
from tkinter import *
from tkinter import ttk
“`

次にメインとなるフォームを以下の様に定義します。

“`

元記事を表示

宮下の解析力学の例題、演習問題を解いてアニメーションで動かした

宮下解析力学の演習問題を解いています。間違い等を発見した人はご指摘していただくと幸いです。

# 1章
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267055/48a09ff3-594e-ddca-3c81-a80ad7161583.png)
長さが$l$の振り子の運動では角度$\phi$だけが実質的な変数である。質点の位置はデカルト座標ではなく、極座標で表したほうが便利になる。このように束縛条件を考慮した変数をうまく利用すると、運動の実質的な変数を扱うことができる。

### 振り子(図1.3)のラグランジアンを直交座標(x,y)で求めよ。(2章の例p.11)

運動エネルギーは$T=1/2m\dot{x}^2+1/2m\dot{y}^2$、ポテンシャルエネルギーは$U=mgy$
したがって、ラグランジアンは
$$L=\frac{m}{2}(\dot{x}^2+\dot{y}^2)-mgy$$
また、ここには束縛条件
$x^2+y^2=l^2$
がある。

### 振り子(図1.3

元記事を表示

DjangoのテストでDatetime.nowを固定したい

# はじめに
Djangoのテスト作っている時にどうしてもDatetime.now(timezone.now)を固定したかった。
そのメモです。

## やること
* mock.patch で モック作る

## コード
#### テストするコード
“`test_app/views.py
from django.utils import timezone

def hogehoge():
# タイムゾーン込みで現在時刻を取得 ex. datetime.datetime(2020, 10, 30, 15, 35, 29, 482661, tzinfo=)
return timezone.now()
“`
こんな感じのコードをテストしたい。

#### テストコード
“`test_app/tests.py
from unittest import mock

class TestClass(TestCase):
@mock.patch(“test_app.views.timezone.now”)
def test_hogeho

元記事を表示

OTHERカテゴリの最新記事