- 1. WinpythonでPytorchのnumpy errorが出た時の対処法
- 2. ABC266 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
- 3. Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較
- 4. FastAPI SQLModel 入門
- 5. HashableなDataclassを作る
- 6. Pythonの便利技と注意点:条件編
- 7. tensorflowがインストールできないだと!?
- 8. 賭博黙示録カイジのEカードの条件での個体数の増減をシミュレーションしてみた
- 9. BinanceのAPIで使うSHA256の認証をPythonでとおす!
- 10. 【Pythonが学べる】ゲーム自動化(2)~クアンタムマキ ストーリー編~【スマホゲーム】
- 11. ゲーム自動化(1)~スマホゲーム自動化 smartphOto(β版)~
- 12. pythonライブラリの保存先の参照方法
- 13. ABC128 B問題 GuidebookをPythonで解く
- 14. TerraformでAPIのレスポンスデータをBigQueryに抽出するテンプレート
- 15. みんなの自動翻訳をシェルやvimで使ってみた
- 16. スラッシュ区切りの数字をきれいにソートする方法
- 17. 停止したEC2の情報取得
- 18. 書籍のタイトルが降ってくるウェブサイト「BookRain」をPythonでつくりました
- 19. Slack で Private channel や DM を含む発言とファイルをエクスポートしてみる
- 20. BOOTSELボタンでLチカ【Raspberry Pi Pico W】
WinpythonでPytorchのnumpy errorが出た時の対処法
windowsでpython環境をローカルで構築するのに便利なWinpython
https://winpython.github.io/
2022/8/30の時点の最新版である
https://sourceforge.net/projects/winpython/files/WinPython_3.10/3.10.5.0/
ダウンロードして解凍しjupyter labでpytorchのテスト用コードを入力したところ
“`pytorch test.python
import torch
x = torch.rand(5, 3)
print(x)
“`
numpy利用不可のエラーが出た
![キャプチャ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/444891/763e935c-ee6a-e4e6-258c-7207e526ca12.jpeg)
このパッケージではpython 3.10.50, torch 1.12.0を使用。stackoverflowにも同様の記事あり、
[参考サイト1](h
ABC266 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
ABC266(AtCoder Beginner Contest 266) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。その他のABC解説、動画などは以下です。
更新時はツイッターにて通知します。
Tweets by AtCoder4https://qiita.com/sano192/items/54accd04df62242b70f0
# A – Middle Letter Dif:9
https://atcoder.jp/contests/abc266/tasks/abc266_a
pythonではSのX文字目をS[X]と書きます。
ただし先頭は0文字目、すなわちS[0]、次がS[1]、…というようになります。
例えばS=”atcoder”であればS[0]=”a”,S[1]=”t”,…となります。中央の文字は文字数の半分のところにある文字です。
例えばS=”atcoder”の時Sは7文字で、真ん中の”o”は3文字目、つまりS[3]となります。
つまり(文字数を2で割った商)文字目を出力すればいいです。Sの
Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較
Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較
# Python
https://qiita.com/hz1_d/items/407dd13f90a8a4533d23
# Ruby
https://qiita.com/ryouya3948/items/5ea2049abfd92eb1ded7
# PHP
https://qiita.com/shizen-shin/items/8383e27c7cf16c0ccb4a
# Java
https://qiita.com/taropon_wwwww/items/95477174ac16287c9744
# JavaScript
https://qiita.com/yrn03m/items/87e223acc6e733b50429
# Perl
https://perlzemi.com/blog/20161013147635.html
FastAPI SQLModel 入門
**SQLModel** はPythonコードから SQL databases と会話するためのライブラリです。ここでは **FastAPI** での使われ方を見ていきますが、FastAPIとは独立したものとして設計されています。
SQLModelは**FastAPI** の作者が自ら作成しており、**SQLAlchemy** と **Pydantic** の両方との互換性を保っています。**Pydantic** はデータ検証のためのPythonライブラリです。Pythonのtype hintが使われます。ですからPydanticクラスはAPIの入り口であるパスオペレーション関数で使われることが一般的です。
過去記事「[FastAPI と SQL Databases(SQLAlchemy)](https://qiita.com/sand/items/461b3f68060952fc7415)」でFastAPIで **SQLAlchemy** を使ってSQL Databaseを扱う方法を述べましたが、**SQLAlchemy** と **Pydantic** の2重のモデルを使う必要
HashableなDataclassを作る
PythonにはHashable,Unhashableという概念があり、辞書型の鍵にしようできるのはHashableなオブジェクトのみ。
割と便利なDataclassを使っていて辞書の鍵として使いたいときに、Hashableにする方法を調べたのでメモ。
## データクラス内にHashableな値しかない場合
デコレーターの`frozen=True`をつけると、データクラス内の値がHashableになる。
“`python
from dataclasses import dataclass@dataclass(frozen=True)
class Sample:
a: int
b: str
“`## データクラス内にHashableでない値がある場合
対応する値をHashableにする。
下記例では、`a`の値を`frozenset`にすることでHashableになる。
型変換の処理は`__post_init__`で行うことで自動的に行われる。“`python
from dataclasses import dataclass@datacl
Pythonの便利技と注意点:条件編
[目次に戻る](https://qiita.com/yuta-sanjyo/items/416b05f8498df1ed3f49)
# ■範囲条件を簡単に
“`py:数字 < 変数 < 数字 >>> num = int(input())
5
>>> if 1 < num < 10: print(num) 5 ``` ```py:数字 <= 変数 <= 数字 >>> num = int(input())
3
>>> if 1 <= num <= 5: print(num) 3 ``` [目次に戻る](https://qiita.com/yuta-sanjyo/items/416b05f8498df1ed3f49)
tensorflowがインストールできないだと!?
## 文字認識を自作しよう!
と意気込んだものの、初っ端から「tensorflow」がインストールできないという事態にはまったので、脱出策としての記録を残します。脱出ということで、これを聴きながら
https://www.youtube.com/watch?v=GG5sv3iKlDw## はまったこと
発生エラーは下記のようなものでした
“`エラー内容.txt
pip install tensorflow
>>>ERROR: Could not find a version that satisfies the requirement tensorflow
>>>ERROR: No matching distribution found for tensorflow
“`端的にいえば、PCに入っている「python」のバージョンが「tensorflow」ライブラリに対応していなかったということ。
そんなことって、あるの!?と思いましたが、「python」のバージョンは「3.7.2」でした。
::: note info
現時点の最新版は「3.11」であり、「te
賭博黙示録カイジのEカードの条件での個体数の増減をシミュレーションしてみた
賭博黙示録カイジという漫画に、Eカードという心理ゲームが出てきます。
https://dic.pixiv.net/a/Eカード
二人のプレイヤーが皇帝(皇帝カード1枚と市民カード4枚)と奴隷(奴隷カード1枚と市民カード4枚)に分かれて、同時に一枚ずつカードを出して、優劣を競うゲームです。
・皇帝vs市民なら皇帝の勝ち
・市民vs奴隷なら市民の勝ち
・奴隷vs皇帝なら奴隷の勝ち(オッズ:5倍)というジャンケンでの「グー・チョキ・パー」のような三すくみの関係になっています。
このような「食う・食われる」のような関係は、捕食者・被食者の生態学モデルで解析できます。
https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%88%E3%82%AB%E3%83%BB%E3%83%B4%E3%82%A9%E3%83%AB%E3%83%86%E3%83%A9%E3%81%AE%E6%96%B9%E7%A8%8B%E5%BC%8F
ただ、今回は「皇帝⇄市民⇄奴隷」と相互に社会的立場が世代ごとに交換される条件での比率がどうなるか調べてみたいと思います。
BinanceのAPIで使うSHA256の認証をPythonでとおす!
# 導入
CCXTを使えば、大体のAPIはフォローされているのであまり困ることはない。
ただ、どうしてもBinanceのAPI仕様書に記載されているものをそのまま使いたい時がある。
仕様書では一部SHA256の認証を使えと書いてあるけど、具体的なコードが記載されていなくて、またグーグル先生に聞いても参考となるコードがあまり出てきませんでした。(Binance提供するモジュールのソースコードは存在したので参考にした)
そのため、誰かの参考になればと思い記載します。# 参考プログラム(ステーキングのポジションを取得する)
“`python:main.py
import math
import time
from typing import Dict, Optional, List, Tuple
from binance.client import Client
from operator import itemgetter
import requests
import hmac
import hashlib#色々パラメータ設定
api_key = “バイナンスで発行するAPIK
【Pythonが学べる】ゲーム自動化(2)~クアンタムマキ ストーリー編~【スマホゲーム】
## はじめに
smartphOtoというシステムを使ってクアンタムマキのストーリーを自動化していきます.
## smartphOto (β版)の概要
smartphOtoとはスマホゲームをPCから操作して自動化するシステムです.
![](https://hamaruki.com/wp-content/uploads/2022/08/structure2.png)
環境構築などはこちら
https://hamaruki.com/2022/08/28/smartphone_game_automation_system01/
## クアンタムマキ
2022年8月22日にリリースされた3D弾幕シューティングRPGです.
グラフィックスがめちゃ綺麗+キャラがかわいいので最近ではおすすめのゲームです.![](https://hamaruki.com/wp-content/uploads/2022/08/screenshot_demo.png)
## 自動化コード
gameフォルダ直下に下記のファイルを作成して頂き,実行すれば動作します.
“`python
import
ゲーム自動化(1)~スマホゲーム自動化 smartphOto(β版)~
# smartphOto (β版)
正式版になり次第,note等で販売する予定です.
## 概要
スマホゲームをPCから操作して自動化するシステムです.
![](https://hamaruki.com/wp-content/uploads/2022/08/structure2.png)
## 環境の構築
### 仮想環境の作成
“`bash
conda create -n smartphOto_v1 python=3.8
“`### 仮想環境に入る
“`bash
conda activate smartphOto_v1
“`**仮想環境の一覧表示**
(仮想環境の名前を忘れたときに必要)
“`bash
conda info -e
“`### 必要パッケージのインストール
“`bash
pip install opencv-python
pip install pandas
pip install matplotlib
“`### 確認コード
“`python
# -*- coding: utf-8 -*-
import c
pythonライブラリの保存先の参照方法
## 背景
・pipでinstallしても、ModuleNotFoundError:となることがある。
・pythonのライブラリの保存先を参照し、正しい場所にライブラリをinstallしたい。## 目標
(1)pythonのimportの参照先のpathを特定できるようになる。
(2)pipで好きなpath(場所)にライブラリを保存できるようになる。## importの参照先と指定場所への保存方法
(1)pythonのimportの参照先のpathを特定できるようになる。
・sys.pathを使用する。(2)pipで好きなpath(場所)にライブラリを保存できるようになる。
・pip -t の後に保存したい場所のpathを記載する。![ライブラリの保存先.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2651220/882e5ea8-4f35-9aaf-f717-adae328457c4.png)
## 補足
・importの参照先の追加方法もそのうち追記したい。## 更新
ABC128 B問題 GuidebookをPythonで解く
ABC128 B問題をPythonのsorted関数を用いて解く
ABC128 B問題を解くにあたってPythonのsorted関数が優秀すぎてびっくりしたので、備忘録として残します。
https://atcoder.jp/contests/abc128/tasks/abc128_b
レストランが存在する町の名前と、レストランの評価が与えられます。
これを①町の名前のアルファベット順に並べ、②同じ町の場合は評価が高い順に並べるというルールのもと、レストランの番号を出力する問題です。
普通のsort関数なら町の名前のアルファベット順にしか並べ替えることができません。
しかし、今回使うsorted関数は優秀すぎるので、町の名前順に並び替えた後に、評価順に並び替えることができちゃいます。
まずはデータの読み込みから実装します。
dataというリストに[町の名前, 評価, 番号]という要素を持つリストを格納します。
“`
N = int(input())data = []
for i in range(N):
S, P = input().sp
TerraformでAPIのレスポンスデータをBigQueryに抽出するテンプレート
# 概要
本記事では、外部APIからBigQueryのテーブルへ定期的にデータを抽出するデータパイプラインのテンプレートソースコードを紹介します。
分析用途やサードパーティーのデータソースとの連携などで、APIから社内DBやBigQueryにデータを転送したいというニーズはよくあります。
そこで、このシンプルなワークフローを実現するために、GCP(Google Cloud Platform)とTerraformをベースにしたリポジトリを作成しました。TerraformをIac(Infrasturucture as code)として採用することで、簡単に環境を再現し、検証を行うことができるようになりました。
本記事では、[tmbd movie API data](https://www.themoviedb.org/documentation/api)を使用しています。このリポジトリを完全に再利用する場合は、tmdb apiリソースにアクセスするためのAPIキーを作成してください。
利用するAPIが変わっても、APIエンドポイントやBigQueryのテーブルスキーマをAPIレス
みんなの自動翻訳をシェルやvimで使ってみた
# みんなの自動翻訳
自動翻訳って楽で素敵ですよね。僕は今までDeepLを使っていました。
だけど、DeepLのAPIって有料な上に、ブラウザの有料プランと併用できないという苦しみがあるようでした。APIを使わせてくれないと、シェルとかvimとかから使いにくい。そこで、みんなの自動翻訳というWebサービスがAPIとか使わせてくれるので使ってみました。ちなみに、このサービスはユーザー登録必須です。
https://mt-auto-minhon-mlt.ucri.jgn-x.jp/# 具体的にはどうするか
minhonコマンドを実装してみます。
例えば、下記のように動いて欲しかった。“`sh
> echo みんなの自動翻訳をシェルから使ってみたよ。| minhon
I tried using Minna no Machine Translation from Shell.
“`いい感じじゃないですか?これなら割とどんなソフトにも組み込めるんじゃ?
もしvimならvisualモードで:を押して“`vim
:’<,'>!minhon
“`
とするとみんなの自動
スラッシュ区切りの数字をきれいにソートする方法
# はじめに
先日仕事中にスラッシュ区切りの数字をソートしたいけどうまくできない!ということがありました。
調べても出てこなかったので備忘録として残しておきます。# 普通にソートすると・・・
例えばstr型のスラッシュ区切りの数字のリストにsort関数でソートをかけると以下のような結果になります。## コード
“`
slash_num_list = [“1/2”, “1/3”, “1/1”, “1/10”, “1/30”, “1/20”]
slash_num_list.sort()
print(slash_num_list)
“`
## 実行結果
“`
[“1/1”, “1/10”, “1/2”, “1/20”, “1/3”, “1/30”]
“`
私が期待する並び方は`[“1/1”, “1/2”, “1/3”, “1/10”, “1/20”, “1/30”]`だったのですが、str型ではその並びは実現できないことがわかりました。# きれいにソートする方法
## sort()は内部的に<演算子を利用する Pythonのドキュメントを見るとsort()では<演算子を利
停止したEC2の情報取得
# はじめに
教育環境として使用しているVPC内のサブネットの空きIPがほとんどなくなってしまい、検証したいのにできない状況でした。
使用していないEC2インスタンスが大量にあり、所有者に削除をお願いするためにも、まずは一覧で取得できないかを検証してみました。# 実行環境
* Windows 10 Pro
* Python 3.9.6
* AWS CLI 2.7.27# 流れ
IAMユーザの作成
↓
AWS CLIのインストール
↓
aws configureで認証情報の設定
↓
Pythonのインストール
↓
Boto3ライブラリのインストール
↓
ソースコードを書いて情報取得!
※当記事ではPythonで情報取得の部分以外の詳細を省きます## IAMユーザ作成
IAMユーザは情報の読み取りができればよいので、AWS管理のポリシー「ReadOnlyAccess」を選択し、作成。
作成時にアクセスキーとシークレットアクセスキーが表示されます。
認証情報の設定時に使用するので、csvファイルとしてDLするか、メモしてください。
![image.png](https://qi
書籍のタイトルが降ってくるウェブサイト「BookRain」をPythonでつくりました
# タイトルの通りですが
BookRainというウェブサイトを作成しました。
書籍のタイトルが雨のように降ってくるだけです。
たき火感覚で楽しんでいただけたら嬉しいです。https://bookrain.link/
# 作ろうと思ったきっかけ
BookRainは[ゆうもやさん](https://mononichi.com/blog/)のWordCascadeのオマージュになります。https://river.tango-gacha.com/
このウェブサイトをはじめて目にしたのは約2年前ほどです。
フロントエンドってこんなにも叙情的なのかと感動したのを覚えています。私も直感的にだれでも楽しめるものを作ってみたい! と燃え上がりましたが、人並みに書けるのはpythonくらい。
以来、諦めていましたが、最近になってbrythonなるものを知りました。https://brython.info/
brythonを知ったのはなんとYouTubeです。
[やねうら王さん](https
Slack で Private channel や DM を含む発言とファイルをエクスポートしてみる
## 背景
2022 年 9 月 1 日から Slack フリープランにおけるメッセージ・ファイルの閲覧制限の仕様が変更となり、**「メッセージ数 10,000 件、ストレージ容量 5 GB」から「過去 90 日間」になる旨** が[アナウンス](https://slack.com/intl/ja-jp/blog/news/pricing-and-plan-updates)されています。
そのため、特に少人数で利用しているワークスペースでは、これまで閲覧できていたデータにアクセスできなくなる恐れがあります。API 経由でアクセスした際の仕様は明に述べられていないようですが、夏休みの宿題が如く、Private channel や Direct Message (DM) を含む各会話の発言と、そこで共有されたファイルをエクスポートするスクリプトを書いてみました。
なお、Public channel の発言のみで良ければ、[Slack 公式のエクスポート機能](https://slack.com/intl/ja-jp/help/articles/201658943-%E3%83%AF
BOOTSELボタンでLチカ【Raspberry Pi Pico W】
![ezgif-1-e212f3d6c5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/07de1f8c-e083-a423-850c-e287cfff110b.gif)
[Raspberry Pi Pico Wの開発環境構築はこちら](https://qiita.com/relu/items/945bcb45120c30837745)
“`python:main.py
import bootsel
import timewhile True:
if bootsel.button() == 1:
machine.Pin(‘LED’, machine.Pin.OUT).on()
else:
machine.Pin(‘LED’, machine.Pin.OUT).off()
time.sleep(0.1)
“`![image.png](https://qiita-image-store.s3.ap-northeas