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

Python3関連のことを調べてみた2021年09月22日
目次

Fundamental Statistics for Data Science (Part 03)

This article is a continuation of [Fundamental Statistics for Data Science (Part 02)](https://qiita.com/qualitia_cdev/items/0bd5a50a73099e5384b1).

8) Covariance
Covariance measures the relationship among two random variables. Let’s assume that we have two random variables, A and B. Where respectively E(A) and E(B) represent the means of the A and B.

![cov.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579376/bab3ee34-3156-ae00-8a96-b25de08ffc11.jpeg)

Covariance values can be

元記事を表示

Blender Pythonで方向ベクトルで表される方向をクウォータニオンを使って実装する

# 1.目的
方向をもつオブジェクトを特定の座標(または方向ベクトルで表現される方向)に向けたい。Unityではtransform.LookAtやQuaternion.LookRotationという関数を使うと一発でできるようなのですが、Blenderにはないようなので自力で実装する必要があります。角度といえば通常はオイラー角で表すことが多い(scene viewなど)ですが、オイラー角は計算に不向きであるため、クウォータニオンを用いて実装します。

# 2.環境
Blender2.93

# 3.クウォータニオンについて軽く触れる
## 1.クウォータニオンでできること
日本語では**四元数**と呼ばれ、**三次元空間での回転**を表現することができます。
回転を表す方法にはほかにもオイラー角、回転行列などがありますが、まず、オイラー角はパラメータは3つしかなくメモリ消費が少ないものの計算で扱いにくいです。次に回転行列は行列なので計算はしやすいですが、パラメータが多くメモリ消費が大きいです。一方のクウォータニオンは回転行列の特性を引き継いでいて計算はしやすく、パラメータが4つで表され

元記事を表示

Pythonをインストール

## 1. Homebrewのインストール


ターミナルを開いて以下のコマンドを実行する

。

“`
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”


“`

## 2. pyenvのインストール

以下のコマンドを実行

する。

“`
$ brew install pyenv


“`

## 3. pyenvの設定

以下のコマンドを実行


“`
$ echo $SHELL


“`

・実行結果が 
/bin/bash の場合、以下4つのコマンドを実行

する。

“`
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.bash_profile


$ echo ‘export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.bash_profile


$ echo ‘eval “$(pyenv init -)”‘ >> ~/.bash

元記事を表示

scikit-learn メモ

## Linear Regression
LinearRegressionを勉強するのに使った教材
【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
[https://www.udemy.com/course/datascience365/](https://www.udemy.com/course/datascience365/)
### 基本事項
intercept_ : 切片
coef_ : 推定係数 (coef => coefficients)

score(x,y) : 線形回帰の決定係数を返す(単回帰分析にも重回帰分析にも使える)
predict(x) : 予測値の算出

### 自由度修正済み決定係数を求める

“`math
R^{2}_{adj} = 1-(1-R^{2})*\frac{n-1}{n-p-1}
“`

“`python:adjusted_r2
reg = LinearRegression()
reg.fit(x, y)

# 決定係数
r2 = reg.score(x,y)

#

元記事を表示

整数配列と整数ターゲットが与えられた場合、2つの数値の合計がターゲットと同値になり、indexを返却する

####趣向
ターケットの値と配列の中のいずれかの値を足した数が同値の場合のindexを
返却する必要があり、結構悩みました。

####例
nums = [2,7,11,15], target = 9の場合[0,1]
nums = [3,2,4], target = 6の場合[1,2]
nums = [3,3], target = 6の場合[0,1]
nums = [3,0,3], target = 6の場合[0,2]

“`python:python3
def twoSum(self, nums: List[int], target: int) -> List[int]:
stay = {}
for index, number in enumerate(nums):
difference = target – number
if difference in stay:
return [stay[difference], index]
el

元記事を表示

cv2.VideoCapture(0)をしても内蔵カメラの動画が取得できない時の対処法

## やりたいこと
macの内蔵カメラの動画を取得したい

## コード

“`
capture = cv2.VideoCapture(0)

while(True):
# フレームのキャプチャ
ret, frame = cap.read()

# 結果のフレームを表示
cv2.imshow(‘frame’,frame)
“`
## 問題

“`
Traceback (most recent call last):
cv2.imshow(‘frame’,frame)
cv2.error: OpenCV(4.5.3)
error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘imshow’
“`

ネットの記事などを探し回ったところ、どうやらcv2.VideoCaptureがうまくいいっていないらしい。
これはopenCVで画像取得をしようとして、URL誤字をしたなどでも同じエラーになる。

## 解決方法

openCVのdocを見たとこ

元記事を表示

python pyenv 切り替え

Djangoを入れようとしたら、pythonのversionが合わないと言われpythonのversionを変えようと思った。
しかし、versionの切り替えに詰まったのでまとめます。

環境:
mac big sur
zsh 使用

zshに以下を記述。
`if which pyenv > /dev/null; then eval “$(pyenv init -)”; fi
`

これで、macの標準のpythonを使わせることを取りやめ、pyenvのpathを読ませる記述らしい。

参考:
https://teratail.com/questions/289984

元記事を表示

Pythonでwebスクレイピング 環境構築からスクレイピングまで2

# Webスクレイピングの基礎2
前回は`Beautiful Soup 4`を使用したスクレイピング方法について紹介しました。

https://qiita.com/hiroshima-bank/items/70471572bcc6bad9d026

`Beautiful Soup 4`はログイン不要なWebサイトのスクレイピングに適したライブラリとなっています。
今回は、ログイン処理までを行うスクレイピングに適しているライブラリである`Selene`について紹介していきます。

## 1. Seleneについて

### [Selene](https://github.com/yashaka/selene) とは?
`Selene`は、`Selenide`というJava用のライブラリの`Python`用のラッパーです。
これらのライブラリはすべて、Webブラウザを自動操作させたUIテストツールを実現するものとして開発されてきました。
しかし、実際にはUIテストツールとしてではなく、Webスクレイピング目的としても非常に有用なライブラリとなっています。

### `S

元記事を表示

Python3: Lambda で DynamoDB を使う

こちらのプログラムを Lambda で使えるように書き換えました。
[Python3: DynamoDB を使う](https://qiita.com/ekzemplaro/items/e7e566a079c677d4e0fc)

city という名前のテーブルを作成

“`py:dynamo_create_table.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# dynamo_create_table.py
#
# Sep/20/2021
# ——————————————————————–
import sys
import json
import boto3
#
# ——————————————————————–
def create_table_proc(name_table):
dynamodb = boto3.resource(‘dyn

元記事を表示

【備忘録】Yahoo!ローカルサーチAPIで牛丼チェーン店の位置情報を取得してdeck.glで表示してみました

# はじめに
– [Yahoo!ローカルサーチAPI](https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/localsearch.html)で牛丼チェーン店の位置情報を取得して[deck.gl](https://deck.gl/)で表示してみました。
– Yahoo!ローカルサーチAPIでは「丼もの、牛丼、親子丼(業種コード:0101031)」で絞り込み、位置情報を取得しています。
– 取得した牛丼チェーン店の位置情報はエクセル等で「すき家」「吉野家」「松屋」で抽出してdeck.glで表示しています。

# アウトプットイメージ

元記事を表示

Pythonで「年」と「月」の情報を抽出する。

## やりたいこと
2021-04-01のような日付の表記から「年」や「月」の情報を抽出する

## 環境
Google Colaboratoryを使用しました。

## 使用した関数
・pandas.Series.apply()
 →Pandasの各要素に関数を適用する

・str.split()
 →Pandasの文字列を区切り文字で分割

## コード

###Step1:DataFrameの作成

“`python:
#日付型のカラムの作成
import pandas as pd

list1=[“2021-04-01″,”2021-04-01″,”2021-04-01”]
columns1=[“日付”]
df=pd.DataFrame(data=list1,columns=columns1)
df
“`

###Step2:-(ハイフン)で日付を分割し、「年」と「月」のカラムに代入する。
“`python:
df[‘年’]= df[‘日付’].apply(lambda x: x.split(‘-‘)[0])
df[‘月’]= df[‘日付’].apply(lambda

元記事を表示

競技プログラミング時に便利なスニペット(python3版)

はじめまして、とあるIT会社の2年目社員です。
入社して一年半が過ぎ、仕事にも慣れてきたため自己学習に時間と体力を割く余裕が出てきており、
最近[Paiza](https://paiza.jp/challenges)にてアルゴリズムの勉強を行っています。
そこで思ったのですが、どうやら競技プログラミングの問題には

* アイディアレベルで処理の流れを考える力
* 上記を実際にプログラムに落とし込む力

の二つが必要なようです。
特に競技中に後者の部分で詰まって時間がかかってしまうのはもったいないと思われます。
そこで今回は、競技プログラミング時に便利なコードをまとめてみました。
言語についてはpython3を対象としています。

#入力
###一行の入力全体を文字列として受け取る
input

“`python
# helloを標準入力にて渡す
a = input()
print(a) # helloと出力される
“`

### スペース区切りの複数入力の受け取り(受け取り変数を分ける)
split(区切り文字)

“`python
# hello worldを標準入力にて渡す

元記事を表示

[Python3] 初心者の初心者による「ユーザー定義関数」解説

#ユーザー定義関数とは
繰り返し使用する処理や、コード全体を見やすくするために使用します。
また、**「自作関数」**とも呼ばれ、自分で作成する関数です。

#ユーザー定義関数の書式
“`python:書式
def 関数名(引数):
# インデント(半角空白4個)が必要
処理1
処理2
処理3
return 戻り値

# 戻り値の取得
変数 = 関数名(引数)
“`

上記が、ユーザー定義関数の書式です。

では、実際の使用方法について説明いたします。

# 使用方法
randomモジュールを使用し足し算の計算問題を10個作成するプログラムのコードを作成しました。
以下のコードを使用し説明いたします。

“`python:例
# randomモジュールをインポートする
from random import randint

# ユーザー定義関数の作成
def getnum():
num = randint(1,100) # random関数を使用し、値を取得
return num

元記事を表示

【随時更新】プログラム初心者に伝えたい、これだけはやっておいてくれというポイント [#Python 編]

## 前提
データサイエンス・機械学習にあこがれてプログラミングを始めた人に、これだけはやっておいて欲しいという計算研究者からの願いを書いておきます。前職のラボ後輩たちが研究成果を外部公開できる形にまとめられていないのがもったいないなと思ったことがあるので、私の思いつくTipsをまとめます。

開発時から実践しておくと開発時間が短縮されるものもあるので試してください。なおVisual Studio Codeの利用は網羅できていません。

### `logging` を最初から使ってログを出しておく

デバッグ作業をするときにログは重要です。
どこまでの処理が走っていて、どこの処理で躓いているのかを明らかにできます。pythonでは少なくともバージョン3.7以降標準ライブラリとして`logging`があり、`import logging`でいつでもログ出力のライブラリが利用できます。関数やクラスを書いたら`logging`を仕込んで置くのが無難です。`logging`のログレベルをいじれば、出力したいログの種類を制限できます。これにより開発環境と本番環境でloglevelを変えれば見せ

元記事を表示

【競プロ典型90問】012の解説(python)

## 概要
[競プロ典型90問](https://atcoder.jp/contests/typical90)の解説記事です。
解説の画像を見ても分からない(~~理解力が足りない~~)ことが多々あったので、後で解き直した際に確認できるようまとめました。

## [問題012-Score Sum Queries](https://atcoder.jp/contests/typical90/tasks/typical90_l)

### 問題概要
白で塗られたH×Wのマス目に対して、以下の2パターンのいずれかのQ個のクエリを処理する。
1. 白いマス(r, c)を赤で塗る
2. (r1, c1), (r2, c2)の2点が与えられた時、以下の条件をどちらも満たしているか判定する
– 2点が共に赤く塗られている
– 2点が赤いマスを辿っていけば、連結している

### 解き方
この問題は、**Union-Find**を知っているか知らないかの問題です。
一応、簡単に説明すると、Union-Findとは、グループ分けの管理を非常に高速に実装できるデータ構造で、
ある集合のグルー

元記事を表示

Kinesis データストリームを DynamoDB で保存

Kinesis データストリームを DynamoDB で保存する Lambda の環境構築です。

Kinesis データストリームの作成はこちら
[AWSIOT: デバイスデータを Kinesis データストリームに送信](https://qiita.com/ekzemplaro/items/d9b2689b4c6c1b038300)

Lambda のプログラムはこちらです。
[lambda_function.py](https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/aws-iot-core-workshop/lambda_function.py)

次の5ステップになります。
1) DynamoDB でテーブルを作成
>テーブル名 table_sep19

>|キー|名前|型|
>|:—————–|:——————|:——————|
>|ハッシュキー |deviceid |String |
>|レインジキー |timestamp |Str

元記事を表示

ABC219 D問題解説 (python)

## 概要
AtcoderのABC219のD問題が(おそらく)あと一歩のところで解けず、非常に悔しい思いをしたので、
忘れないよう記事にまとめました。

### 問題文

> N 種類の弁当が、それぞれ 1 個ずつ売られています。
i=1,2,…,N について、i 種類目の弁当には Ai個のたこ焼きと Bi個のたい焼きが入っています。
高橋君は、 X 個以上のたこ焼きと Y 個以上のたい焼きを食べたいです。
高橋君がいくつかの弁当を選んで買うことで、 X 個以上のたこ焼きと Y 個以上のたい焼きを手に入れることが可能かどうか判定して下さい。また、可能な場合はそのために高橋君が購入しなければならない弁当の個数の最小値を求めて下さい。
各種類の弁当は 1 個しか売られていないため、同じ種類の弁当を 2 個以上購入することは出来ないことに注意して下さい。

### 制約
>$1≤N≤300$
$1≤X,Y≤300$
$1≤Ai,Bi≤300$
入力はすべて整数

引用元:[Atcoder-ABC219 D問題](https://atcoder.jp/contests/abc219/tasks

元記事を表示

[Python] Tweepyモジュールで、Tweeterのツイートを自動でretweetするBOTを超簡単に作成する方法

Tweeterで、自動リツイートするBOTを作る方法です。
(今後、徐々に肉付けしていきます。多分。。。とりあえず、R1と言う事で。)
皆様のお役に立てると嬉しいです!

<はじめに>
自分はPython使いなので、コードに関して詳しく説明しようと思ったのですが、書いている途中で、「pythonのコードを全く知らない人」でも、見よう見まねでBOTが作れる様な記事にしようと思い直し、大幅に書き直しました。
プログラムの事を知らなくても、PCヘビーユーザー以上なら設定可能と思います。
(勿論、Python学習者に人にも少しは役に立つと願いたいです。)

<全体のイメージ/状況>
私自身は、TweeterではアカウントAとBを保有しております。
Aの方が本アカウントで、現在、フォローワー1万人を目指し、活動中です。(笑)
そこで、Bの方をBOTアカウントとして、本アカのツイートをひたすらリツイートさせようと思っております。(Bは、サブアカウントです。)
イメージとしては、こんな感じです。
![全体イメージ.jpg](https://qiita-image-store.s3.ap-northe

元記事を表示

イントロスペクションについて(オブジェクトの調査)

**pythonの本を読んでいたら、イントロスペクションという単語が急に出てきたので、ネットで調べたものをまとました。**
#イントロスペクションの意味
英語ではintrospectionと書かれ、日本語で「内省」と訳されます。あまり生活にはなじみのない単語ですが、辞書を引いてみると内省は「自分自身の思考や振る舞いについて深く考えること」と書かれています。

プログラミング言語においてのintrospectionは、**プログラムの実行時にオブジェクトの性質や型を調べること**です。
プログラミング言語で書かれたオブジェクトについて内省することだと私は解釈しています。
イントロスペクションは多くのプログラミング言語に実装されています。
#リフレクション(reflection)との違い
似たような意味としてリフレクションが存在します。
リフレクションは、プログラムの実行時にオブジェクトの値、メタデータ、性質、関数を操作することです
#例(python)
pythonは全てがオブジェクトなので、イントロスペクション機能を持つ関数を使うことで多くの事を調べることができます。
イントロスペクシ

元記事を表示

Python で OpenWeather API へアクセスして気象情報を取得する

## Goals

* OpenWeather API へ Python からアクセスできるようになる
* 取得した JSON データを整形して出力できるようになる

## Back ground

仕事で Python を書く機会がありそうなので、
Python の素振りがてら、API を叩くコードを書いてみようと思いました。

## OpenWeather

OpenWeather は気象情報を閲覧するモバイルアプリなどを公開しているサービスです。
別途、 API も無料で (※) 公開されているため、そちらを今回は利用します。
https://openweathermap.org/

※ 確認はしていませんが、この手の API は商用利用等では有料となる可能性があるため、よく確認の上使用してください。

## API の仕様

今回は現在の気象データを取得するため、以下の API を使用します。
[Current weather data](https://openweathermap.org/current)

## API Key の取得

API へアクセスする

元記事を表示

OTHERカテゴリの最新記事