- 1. Pythonのunittest.Mockでスタブを作って単体テストする
- 2. 【高等学校学習指導要領 情報Ⅱ】教員研修用教材:重回帰分析とモデルの決定(python)
- 3. 初心者のためのpandas基礎⑥Group by
- 4. Fusion 360 を Pythonで動かそう その6 スケッチポイントを描く
- 5. [Python学習その1]リスト内包表記の書き方と使い方について
- 6. 初心者のためのpandas基礎⑤Pivotテーブル(Excel対比付き)
- 7. OpenCV を使ってお絵かきアプリを作る方法
- 8. 「データサイエンス100本ノック(構造化データ加工編)」 Python-012 解説
- 9. yamlで保存してあるconda仮想環境をDocker上で構築
- 10. pythonでyoutubeのライブチャットを取得してテキストファイルに保存する
- 11. [Python]オブジェクトの属性にアクセスしたときの挙動
- 12. PulumiでAWSにWEBアプリの最小構成を構築する
- 13. Ren’Pyで2D RPGを作る(1)
- 14. pythonテクニック データの読み込み read_csv/sas7bdat/connect
- 15. 【Python (PyTorch)】勾配降下法で多変数関数の最小値を求める
- 16. aibo Events API を使って aibo に音声コマンドを実行してもらう
- 17. Google翻訳APIをPythonで実行する
- 18. BluetoothゲームコントローラーをIoTボタンとして使う。
- 19. 【Python】numpyの基本的な使い方
- 20. はじめてのPython3 ~はじめての変数編~
Pythonのunittest.Mockでスタブを作って単体テストする
# 概要
– 自作クラスに対して、`unittest.mock.MagicMock`を使ってモックを作成してテストする。# サンプルコード(挨拶を返すプログラムとテストコード)
## (テストしたいファイル。ランダムで挨拶の語を選んで、挨拶文を返す)
“`
# greeting.py
import randomclass Greeting():
def greeting_phrase(self, name):
grt = self.greeting_word()
result = f'{grt}! {name}.’
print(result)
return resultdef greeting_word(self):
grt = [‘Hello’, ‘Bonjour’, ‘Konnichiwa’]
i = random.randint(0, len(grt) – 1)
return grt[i]if __name__ == ‘__mai
【高等学校学習指導要領 情報Ⅱ】教員研修用教材:重回帰分析とモデルの決定(python)
# はじめに
今回は文部科学省のページで公開されている情報Ⅰの教員研修用教材の「第3章 情報とデータサイエンス 前半」内の「重回帰分析とモデルの決定」についてみていきたいと思います。
「重回帰分析とモデルの決定」の前章ではExcelとPythonを使用して、データの整形・前処理・操作・欠損値と異常値の取扱いなどについて扱っていますが、この章からは「重回帰分析とモデルの決定」を行っていきます。
しかしRでの実装例しか書いていないので、pythonでの実装について考えていきたいと思います。# 教材
[高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00742.html “高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省”)
[第3章 情報とデータサイエンス 前半 (PDF:8.9MB) PDF](https://www.mext.go.jp/content/20200702-mxt_jogai01-000007843_004.pdf “第3章 情報と
初心者のためのpandas基礎⑥Group by
#pandasとは
Pythonにて、構造化データ(テーブル型のデータ)を扱うためのライブラリです。ファイルの読み込みやその後の加工・抽出処理などを簡単に行うことができ(SQL的な感覚で行うことができ)、機械学習などのデータの前処理で必須となるライブラリです。
他項目への目次は[こちら](https://qiita.com/Yanagawa_Yoshihisa/items/e1d7d0e939f58e7301ea)になります。#はじめに
本記事では、Group byテーブルについて記載します。基本的なSQLの知識がある前提での記載になります。サンプルはタイタニックのデータで試してみます。タイタニックがわからない人は「kaggle タイタニック」で調べて下さい。
“`python:
dataframe = pd.read_csv(‘train.csv’)
“`#使い方
まずはライブラリをインポートします。pandasにpdという名前をつけてimportします。“`python:
import pandas as pd
“`
基本的なサンプル構文を下記に示します。
Fusion 360 を Pythonで動かそう その6 スケッチポイントを描く
#はじめに
Fusion360 のAPIの理解を深めるために公式ドキュメント内のサンプルコード [**Sketch Point API Sample (スケッチポイント APIサンプル)**](http://help.autodesk.com/view/fusion360/ENU/?guid=GUID-79d9183a-a9e7-11e5-83a9-f8b156d7cd97) の内容からドキュメントを読み込んでみたメモ書きです#スクリプトの内容を確認する
##最初と最後のおまじないとスケッチの作成まで
最初と最後のこの辺りはFusion360 APIのお決まりのパターンです。[**その5**](https://qiita.com/reisyu/items/c5544f877238b70730ce)で触れたので説明を省略します。“`Python
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
[Python学習その1]リスト内包表記の書き方と使い方について
参考記事:[リスト内包表記を使ったリストの作成](https://www.javadrive.jp/python/list/index16.html)
##リスト内包表記の使い方
###基本形
[式 for 変数 in イテラブルオブジェクト]リストを効率的に書くための方法らしい。
###実際に使ってみる
“`python:
[tweet.user.name for tweet in tweepy.Cursor(api.search, q=’スマブラ’).items(10) if list(tweet.text)[:2] != [‘R’, ‘T’]]
“`いったん終わる
初心者のためのpandas基礎⑤Pivotテーブル(Excel対比付き)
#pandasとは
Pythonにて、構造化データ(テーブル型のデータ)を扱うためのライブラリです。ファイルの読み込みやその後の加工・抽出処理などを簡単に行うことができ(SQL的な感覚で行うことができ)、機械学習などのデータの前処理で必須となるライブラリです。
他項目への目次は[こちら](https://qiita.com/Yanagawa_Yoshihisa/items/e1d7d0e939f58e7301ea)になります。#はじめに
本記事では、Pivotテーブルについて記載します。Pivotとは何か等は省略します。基本的にはExcelではここの設定がpandas構文ではこうなりますという記載とします。サンプルはタイタニックのデータで試してみます。タイタニックがわからない人は「kaggle タイタニック」で調べて下さい。
“`python:
dataframe = pd.read_csv(‘train.csv’)
“`#使い方
まずはライブラリをインポートします。pandasにpdという名前をつけてimportします。“`python:
import pan
OpenCV を使ってお絵かきアプリを作る方法
#0.最初に
今回作るものがどういう感じで動くのか見てみたい方は、[こちら](https://youtu.be/RH7_kFyjqTM)(youtubeの動画)からどうぞ。
#1.実装
“`opencv.py
import cv2
import numpy as npdrawing = False
color = (255,255,255)
ix,iy = 0,0def nothing(x):
passdef draw_circle(event,x,y,flags,param):
global ix,iy,drawing,colorb = cv2.getTrackbarPos(‘B’,’image’)
g = cv2.getTrackbarPos(‘G’,’image’)
r = cv2.getTrackbarPos(‘R’,’image’)
s = cv2.getTrackbarPos(‘Size’,’image’)
i = cv2.getTrackbarPos(switch,’image’)if
「データサイエンス100本ノック(構造化データ加工編)」 Python-012 解説
##Youtube
[動画解説](https://youtu.be/fZJdGwEu-qQ)もしています。##問題
P-012: 店舗データフレーム(df_store)から横浜市の店舗だけ全項目表示せよ。##解答
“`:コード
df_store.query(“address.str.contains(‘横浜市’)”, engine=’python’)
“`“`:出力
store_cd store_name prefecture_cd prefecture address address_kana tel_no longitude latitude floor_area
2 S14010 菊名店 14 神奈川県 神奈川県横浜市港北区菊名一丁目 カナガワケンヨコハマシコウホククキクナイッチョウメ 045-123-4032 139.6326 35.50049 1732.0
3 S14033 阿久和店 14 神奈川県 神奈川県横浜市瀬谷区阿久和西一丁目 カナガワケンヨコハマシセヤクアクワニシイッチョウメ 045-123-4043 139.4961 35.45918 1495
yamlで保存してあるconda仮想環境をDocker上で構築
Docker上でPython環境を作るときに`pip`や`Pipenv`なども使うのだが、使うライブラリやパッケージの関係で`conda`環境を使えると便利なことがある。
思った通りのconda環境をDocker上で作るための方法の自分用メモ。## 1. 動機
Pythonの開発やデータ分析などでMinicondaやAnacondaを使うことがある。
(依存ライブラリも割と一緒にインストールしてくれるので自分で入れなくて良いなど環境構築が楽だったり、バイナリ互換性の問題でcondaの特定チャンネルからのインストールを推奨されるパッケージがあったりする)
その際、やっている作業毎にパッケージやバージョンを変えたかったり、環境を後で再現しやすくするなどの目的で基本はconda仮想環境を使うようにしている。
が、Python以外のところから環境設定・構築が必要になることがあったり、仮想環境と言えどもPCの環境を汚して他と干渉したりの問題が起きるなどで、結局Dockerで対応することが多いため。(で、そのDockerへの移植時に結構苦戦したため)#### yamlファイルを使う理由
pythonでyoutubeのライブチャットを取得してテキストファイルに保存する
目的
–youtubeの切り抜き動画を作成するために、
チャットのデータがテキストファイルとして手元にあったら便利だと思ったので作成しました。
需要があるかわかりませんが、いろいろ躓いた箇所があったので残しておきます。こちらの記事をもとに作成しました。
勝手にリンクはってるので、怒られたら消します。
https://teratail.com/questions/276731?link=qa_related_pc
https://teratail.com/questions/263421?link=qa_related_pc必要環境
–
python 3・pip でインストールするやつ
BeautifulSoup
requests
lxmlコード
–
“`rb
from bs4 import BeautifulSoup
import json
i
[Python]オブジェクトの属性にアクセスしたときの挙動
Pythonの属性にアクセスしたときの挙動が[この記事](https://www.lifewithpython.com/2018/09/python-attribute-access-internal-flow.html)にまとめられていたのですが、忘れそうなのでコードの形式で整理しておきます。
“`python
class MyGetDescriptor:
def __init__(self, msg):
self.__msg = msg
def __set_name__(self, owner, name):
self.__name = name
def __get__(self, instance, owner):
return self.__name + ” ” + self.__msg
def __set__(self, instance, value): # これは必要
pass
class ClassA:
get1 = MyGetDescriptor(“A Desc
PulumiでAWSにWEBアプリの最小構成を構築する
# はじめに
Pulumiはプログラミング言語(現在サポートされているのは、JavaScript、TypeScript、python、go、C#)によりインフラをコード管理するためのツールです。Pulumiを使ってpythonでAWSにWEBアプリを動かすための基本的な構成を構築してみて気づいたことなどを書いてみます。
pulumi環境構築事などについては下記のチュートリアルを参考にしてください
https://www.pulumi.com/docs/get-started/aws/# 実行環境
python: 3.7.7
pulumi: 2.7.1
aws-cli: 1.18.102# 構成について
### 構成図
### 今回作
Ren’Pyで2D RPGを作る(1)
# 概要
こんにちは、しがないエロゲーマー蟹丸です。今回は[**Ren’Py**](https://www.renpy.org/)というオープンソースのビジュアルノベル制作エンジンを使って2D RPGを作っていきたいと思います。
まだRen’Pyでどこまでできるのかがわかっていないので途中で挫折する可能性はありますが、失敗のメモも大事なので残しておこうと思います。**本記事の範囲**
Ren’Pyを選んだ理由、Ren’Py導入、RPG用Cookbookを試すところまで# 背景:なぜRen’Py?
introductionで述べたようにRen’Pyはビジュアルノベル制作エンジンです。じゃあなんでRPGを作るのにこれを選んだの?という話をします。端的に言えば「**Pythonで書けるの神では?**」に尽きるので、読み飛ばしてもらっていいです。まずゲーム制作といえば有名なものがいくつかあります。
– [ツクール](https://tkool.jp/products/index.html)
– [WOLF RPGエディター(ウディタ)](https://www.silversec
pythonテクニック データの読み込み read_csv/sas7bdat/connect
# pythonによるcsv/excel/sasデータの読み込みとデータベースの接続方法
csvの読み込みならread_csv
excelの読み込みならread_excel
SASデータセットの読み込みならsas7bdatやpandasのread_sas
DBへの接続ならsqlite3.connectなど# 準備
import pandas as pd
import dask
import dask.dataframe as dd
from dask.delayed import delayed
import sqlite3
from sas7bdat import SAS7BDAT# csvの読み込み read_csv
Data = pd.read_csv( “パス/ファイル名.csv” )
Data = dd.read_csv( “パス/ファイル名.csv” ).compute()Daskの方が処理速度はやいので、大容量データの場合はDaskの方がいいかも
列名や型を指定する場合(データの1行目に列名あるならheader = 0で1行目無視)
FilePass
【Python (PyTorch)】勾配降下法で多変数関数の最小値を求める
検索しても意外とイイ感じのがヒットしなかったので、Python(PyTorch)を使って「**多変数関数の最小値と最小値を実現する点の座標を勾配降下法を用いて求める方法**」についてまとめておきます。
## 実行環境
OS : Windows10
環境 : Anaconda(エディタ:Jupyter Notebook)
言語 : Python3
使用ライブラリ : PyTorch,numpy
※Anaconda,PyTorchのインストールについては下記を参考にしてください。## 勾配降下法とは
実装の前に簡単に勾配降下法について簡単に説明します。勾配ベクトルは、以下の性質を持ちます。
『 関数の勾配ベクトルの方向は「**その点から少し動いたときに(近傍のうち)関数の値を最大にする方向**」となる 』
つまり、勾配ベクトルにマイナスをかけた方向は「**その点から少し動いたときに(近傍のうち)関数の値を最小にする方向**」になります。この性質を利用して、点を勾配方向に動かしていくことで関数の最小値を求める方法を「勾配降下法」と言います。
詳しくは[こちら](https:/
aibo Events API を使って aibo に音声コマンドを実行してもらう
先週、先々週と仮面ライダーゼロワンに
天津垓の相棒である AI 犬型ロボットさうざー役として出演していた aibo。【期間限定配信?】
39話で #aibo 演じるさうざーがキメた変身ポーズの特別配信がスタート?✨
aiboに「ぜろわんにへんしん」「かめんらいだーぜろわん」と声をかけるとゼロワンの変身音にあわせた特別なふるまいを披露してくれます??
8/2までの期間限定です!#
Google翻訳APIをPythonで実行する
#概要
論文を翻訳して読むのに、ブラウザ上でちまちまGoogle翻訳にコピペしていたのだが、いい加減面倒になった。そこでテキストファイルに書かれた英文を読みとり、翻訳結果を出力するPythonスクリプトを書いてみようと思った。翻訳はGoogleAPIを使おうと思って事例を調べた所、[Google翻訳APIを無料で作る方法](https://qiita.com/satto_sann/items/be4177360a0bc3691fdf)という記事があったので、試してみた時のメモ
#元記事からのAPI変更点
元記事はGetでAPIを叩いていたが、大量の文章を投げる場合の文字列制限が気になったので、以下の通りPostでもアクセスできるようにした。“`javascript
function doGet(e) {
return doPost(e);
}function doPost(e) {
// リクエストパラメータを取得する
var p = e.parameter;
// LanguageAppクラスを用いて翻訳を実行
var trans
BluetoothゲームコントローラーをIoTボタンとして使う。
出退勤で打刻するためにAmazon Dash Buttonを使っていたのですが、電池交換に失敗して壊してしまったので、代替として、[MOCUTE-039](https://www.amazon.co.jp/dp/B07KSC2DFV)という手のひらサイズのBluetoothゲームコントローラーを使うことにしました。ちなみにDash Buttonは2個持っていたのですが、どちらも電池交換に失敗して壊しました。つらい。
連携先にRaspberry Pi 3を使います。私が使っているのはRaspberry Pi 3 Model B Rev 1.2で、OSはRaspbian Busterです。
## Bluetoothペアリング
### 事前作業
ペアリングには`bluetoothctl`を使いますが、`bluetoothctl` でスキャンするとどのMACアドレスがMOCUTE-039なのかわからないため、適当なスマホ端末でペアリングしてMACアドレスを調べてから作業を実施しました。“`
[NEW] Device 16:01:xx… 16-01-xxx… # デバイス名が
【Python】numpyの基本的な使い方
##numpyについて
numpyを利用することで、行列等の数値計算を簡単に計算することが可能です。###行列の生成
以下のようにnp.arrayにリストを引数にすることで配列を生成できます。
“`
import numpy as nparray = np.array([1,2,3,4])
array
“`“`実行結果.
array([1, 2, 3, 4])
“`リストのリストを引数にすることで、行列(2行4列)を作成することができます。
“`
array2 = np.array([[1,2,3,4],[11,22,33,44]])
array2
“`“`実行結果.
array([[ 1, 2, 3, 4],
[11, 22, 33, 44]])
“`何行何列の行列であるかを調べるためにshapeメソッドを使用することで調べることができます。
“`
array2.shape
“`“`実行結果.
(2, 4)
“`arangeメソッドを使用することで引数の値分の配列を生成することができます。
“`
はじめてのPython3 ~はじめての変数編~
# はじめに
注意点などは[前回](https://qiita.com/kashun0410/items/4113051964d5a1cd0bb5)を参照してください。## 変数に文字列を入れる
“`
# 3つの文章print(“勇者は、荒野を歩いていた”)
print(“勇者は、モンスターと戦った”)
print(“勇者は、モンスターをたおした”)“`
↓実行結果
—–
勇者は、荒野を歩いていた
勇者は、モンスターと戦った
勇者は、モンスターをたおした
—–もし、「勇者」を「賢者」に修正する時にprint内の「勇者」を1つ1つ変えるのは手間がかかることがある。
そこで使うのが変数。
変数を使うと変更する箇所が1つに纏められるといったメリットがある。※変数にデータを入れることを代入という。
“`
player = “賢者” # 文字データを登録する場合はダブルクォーテーションで囲む# 文字データが入った変数を表示、連結させるには以下のように記述する
print(player + “は、荒野を歩いていた”)
print(pl