Python関連のことを調べてみた2022年06月05日

Python関連のことを調べてみた2022年06月05日

Workload Identity連携で、AWS Cloud9からPythonでGCP操作

# はじめに
AWSからGCPの操作がセキュアにできるWorkload Identity連携を、Cloud9上からPythonで試してみたので記事にしました。

# まとめ
– 認証ファイルのパスを、環境変数`GOOGLE_APPLICATION_CREDENTIALS`にセットする
– 対象プロジェクトを指定するために、別途環境変数`GCLOUD_PROJECT`にセット
– Cloud9から行う場合は、使用しているEC2にIAMロールを付与して使う
– Pythonライブラリをインストールする際、ローカルにインストールする`pip install -t .`だとうまくいかない

# 参考
GCP側の手順やCloud9の設定は以下のページが詳しいです。

https://tech.nri-net.com/entry/2021/07/01/111020

# やったこと
## GCP側
前回の記事をそのままやっています。

https://qiita.com/a_b_/items/f30b85be4f44ed1f620c#gcp%E5%81%B4

こちらで作られたファイルをそ

元記事を表示

Pythonで姓名判断を作って占ってみた話

姓名判断を作ってみました

この姓名判断で使ったモジュール
・“pandas“

コード

多少長くて汚いです、すみません
“`python:本コード
import pandas

imi = [
”,
‘飛躍を表す根源数’,
‘物質面や精神面が不安定’,
‘感性で才能が開花’,
‘努力が報われない’,
‘行動力で信頼を得る’,
‘大業を成せる’,
‘目標を掲げ幸福に’,
‘努力で成果を得る’,
‘感情の浮沈で急変’,
‘精神面が不安定’,
‘堅実で人生が安定’,
‘積極性や決断に欠ける’,
‘あふれる魅力で成功’,
‘不平不満が多い’,
‘幸運を呼び込み安泰’,
‘富と名声を得る’,
‘一途な信念で目標達成’,
‘努力と積極性で勝利’,
‘流されやすく急変’,
‘誘惑に弱く急変’,
‘精神力で飛躍’,
‘何事も中途挫折’,
‘順調に躍進’,
‘人気運と金運を持つ’,

元記事を表示

スクレイピングに必要な知識

スクレイピングの副業に興味があるので簡単にまとめてみました。

# スクレイピングに必要な知識

## Python
基本的なことができれば良い。入門書一冊やれば十分とのこと。

以下のライブラリの知識が必要。ライブラリはターミナルで
“`python
pip3 install ライブラリ名
“`
と入力。

### Requests
HTTP通信用のライブラリ。ウェブスクレイピングやHTMLやXMLファイルからデータを取得するのに使う。

### BeautifulSoup
requesteで取得したデータの中から必要な情報を抽出する。

### Selenium
データの取得、抽出の両方を行うが、ブラウザを操作してデータを取得するので動作が遅い。

## HTML
beautifulsoupではHTMLのツリー状のオブジェクトを取得するのでHTMLの構造を理解する必要がある。body、titleなどタグの構造を理解する必要がある。

## CSS
HTMLで記述されたウェブページをどのように装飾するか定義する言語。CSSの中でもCSSセレクタを理解する必要がある。CSSセレ

元記事を表示

tkinter キャンバス内にフレームを配置するときの注意点

# 注意点
ウィジェットの設定をするときはpropagate=Falseと明示的に書かないと設定が反映されない。(tk.Tkの設定で上書きされてしまう)

“`python3
import tkinter as tk

if __name__ == ‘__main__’:
root = tk.Tk()
root.configure(background=’black’)
root.geometry(‘1000×1000′)

canvas = tk.Canvas(root, width=800, height=800, background=’white’)
canvas.propagate(False)
canvas.pack()

frame = tk.Frame(canvas, width=500, height=500, background=’blue’)
frame.propagate(False)
frame.pack()

root.mainloop()
“`

![image.png

元記事を表示

Kaggle Image Matching Challenge 2022 まとめ

:::note warn
2022年6月時点の情報です
あと数式とか間違えてるかもしれないので見つけたら教えて下さい
:::

– 今回 [Image Matching Challenge 2022 \| Kaggle](https://www.kaggle.com/competitions/image-matching-challenge-2022) に参加しました
– 約1ヶ月ほど参加しました
– 一緒に参加してくださったチームメンバーに圧倒的感謝 :pray:
– [arutema47(@arutema47)さん](https://twitter.com/arutema47)
– [yu4u(@yu4u)さん](https://twitter.com/yu4u)
– [かまろ/Camaro(@mlaass1)さん](https://twitter.com/mlaass1)
– [s\_shohey(@s\_shohey)さん](https://twitter.com/s_shohey)
– 結

元記事を表示

【AtCoder解説】PythonでABC254のA,B,C,D,E問題を制する!

**ABC254**の**A,B,C,D,E問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**

元記事を表示

Atcoder参加記録 ABC254 PythonでA~E

# A – Last Two Digits
https://atcoder.jp/contests/abc254/tasks/abc254_a

入力の最後2文字を出力。
“`python
def main():
N = input()
print(N[-2:])

if __name__ == “__main__”:
main()
“`
# B – Practical Computing
https://atcoder.jp/contests/abc254/tasks/abc254_b

問題文の通りに実装。
“`python
def main():
N = int(input())
A = [[0] * i for i in range(1, N + 1)]
for i in range(N):
for j in range(i + 1):
if j == 0 or j == i:
A[i][j] = 1
continue

元記事を表示

【PySimpleGUI+SubscanAPI】StakingRewardsを取得するGUIアプリについて

## 背景
[以前投稿した記事](https://qiita.com/7rikazhexde/items/34946a208efbf94ddedf)でPythonでSubscanAPIを使用してDOTのStakingRewardsからCryptactのカスタムファイルを保存する方法を紹介しました。

作成したコードはターミナルから実行してcsvファイルを指定のパスに保存する形式でしたが、保存内容の確認には都度csvファイルを開く必要があり手間でした。

そこで今回は以前作成したコードをベースに以下に対応したWindows/Mac向けのGUIアプリを作成しました。
* 取引履歴データはUI上で指定し、表(テーブル)形式で表示
* 対象とする取引履歴データは下記に対応
* Reward&Slashの取引履歴(Download all data)
* Cryptactカスタムファイル(ステーキング報酬)
* CSVファイル保存(Save as指定)

## 作成したもの
PythonでGUIを作成できる[PySimpleGUI](https://pysimplegui.readth

元記事を表示

TensorBoard上で点群やメッシュなどの3Dオブジェクトを表示する

# 概要
Open3Dの [**バージョン 0.14**](https://github.com/isl-org/Open3D/releases/tag/v0.14.1) でTensorBoardとの連携機能が実装され、TensorBoard上で点群やメッシュなどの3Dオブジェクトを可視化できるようになった。TensorFlowはもちろん、PyTorchでも利用できる。
![Open3d_on_TensorBoard](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/7e52ae63-7617-e0cd-c2c8-d3d2872057c7.png)

# TensorBoardで3Dオブジェクトを可視化する例
**Open3D**, **PyTorch**, **TensorBoard** を使って3Dオブジェクトを可視化する例を紹介する。

## 実行環境
最低限インストールが必要となるライブラリは以下である。バージョンは本記事の投稿時(2022/06/04)の最新のものを使用している。現状、Ope

元記事を表示

Python数値を四捨五入

#2
pythonで桁数を四捨五入する時はroundを使います。

“`main.py
a = 3.141592653589793
print(round(a, 2)) # aの小数第3位が四捨五入される。
“`
<実行結果>

“`
3.14
“`

もし、整数を四捨五入したい場合はround関数の2番目の引数に「-」を付けると整数が四捨五入されます。
“`main2.py
a = 3141592.65358979
print(round(a, -2)) # aの整数第2位が四捨五入される。
“`
< 実行結果 >

“`
3141600.0
“`

という風になります。

元記事を表示

点群をBabylon.jsでボクセル表示する

![岸和田城ボクセル.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703301/949d0c34-833e-8806-3203-a7c14df92571.jpeg)

## はじめに

点群、最近流行ってますよね。iPhone LiDARで個人でもお手軽に取れるようになりました。
ただ、やっぱり広域スキャンされた点群は、データ量が大きいせいで見るだけでもPCスペックが求められてつらい。
ブラウザで閲覧できるとお手軽に見れていいですよね。というわけで、点群をボクセル化してブラウザで表示できたので、その手順を説明しようと思います。

点群データは「[岸和田城 3次元点群データ](https://www.geospatial.jp/ckan/dataset/kishiwada-castle) 」の「1.zip」を使わせていただきました。オープンデータありがたいですね。

## ボクセル表示するまでの流れ

実施した手順は以下となります

1. 点群データ`.las`を CloudCompare で間引い

元記事を表示

pythonで実行時間を計測する

#1
初めての投稿なので少し見にくいかもしれませんがご了承ください。

“`py.py
t1 = time.time()#探索「開始」の時間
#計測したい処理
t2 = time.time() #探索「終了」の時間
elapsed_time = t2 – t1 #実行時間の計測
print(“elapsed_time”)
“`
実行結果はこういった風に
![result___.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688920/1f264721-a4df-c8e2-07a5-47c91c1bbdc9.png)
でます。(これは単位は秒なので気を付けてください。)

元記事を表示

カーボンナノチューブの3DCGモデルをblenderで作成する

# 1. 概要
単層カーボンナノチューブ(Single Walled Carbon Nanotube, SWCNT)の3DCGモデルを作りたくなったので、blenderを使ってレンダリングしてみようと思い立ちました。
ググっても出てこないので、記事に残しておこうと思います。

環境
MacOS 12.4
Blender 3.0.1
C++, コンパイラはc++14
Python 3.9
# 2. SWCNTとは
完成品を見た方がイメージが湧くと思います。
![release4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702367/8b3357ae-960f-dfd2-ed81-697a1774ae6a.png)
緑色の球体が炭素原子、黒色の棒がC-C結合にあたります。
炭素の六員環構造からなるチューブ状の物質がカーボンナノチューブです。
これを今から作っていきましょう。
# 3. 全体の流れ
まず、各原子の位置を計算する必要があります。
そして原子間の結合も描画したいので、それらの位置・傾きを計

元記事を表示

MasoniteでチョットModel①(取得とか)

(Python素人が、)ひっそりとMasoniteして行こう、Model編。
今回は取得のみ。
※保存とか、Modelそのもののコーディングとかは別途書きたいなと。

[Masonite ORM](https://orm.masoniteproject.com/models)

DB周りを使用する場合、別途“`Masonite ORM“`のインストールが必要かと思います。
“`bash
pip install pip install masonite-orm
“`

# バージョン
“`bash
Python 3.10.4
Masonite version 4.14.1
masonite-orm 2.11.10
“`

# 取得
今回は簡単なものだけを記載しました。
いつかもっと充実できたら…

Laravelユーザみんな大好き“`tinker“`も勿論ありました。
“`python craft tinker“`
取得の確認とかはこちらを使うと便利。

ただ、取得した全値の確認とかは“`to_json()“`をしないとダメかもしれません。

クエリビルダの使用も

元記事を表示

【Pytorch】ニューラルネットワークの重み更新を可視化する

# はじめに

ニューラルネットワークの学習では、誤差逆伝播法と呼ばれる手法で各ニューロンの重みの更新を行います。実際に重みの更新を可視化している記事が少なかったので、アニメーションとして可視化を行いました。

# 環境
– Google Colaboratory Pro

# コード
モジュールのimport・変換前のデータ
“`python:
import torchvision.transforms as transforms
from torch.utils.data import DataLoader
from torchvision.datasets import MNIST
import torch
from torch.autograd import Variable
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.cuda import device_of
import numpy as np
import pandas as p

元記事を表示

『symbol-sdk-python 3.0.3』の旧Verからの仕様変更点とハマりどころメモ

# 概要

先日公開した[投げXYMボタン](https://qiita.com/kurikou_XymCity/items/b0836c11629256fd397d)を作った時に、SymbolブロックチェーンのPythonのSDKを触ったんですが、旧Verから微妙に仕様が変わっていたり、少し苦戦したポイントがあったので参考にメモを残そうと思います。

# 対象のSDKバージョン

今回は、[symbol-sdk-python 3.0.3](https://pypi.org/project/symbol-sdk-python/)を前提とします。旧Verと大部分の書き方は変わってないんですが、微妙~に細かく仕様が変わってる部分があります。以下、主な変更点とハマったポイントをまとめます。

# 変更点1. トランザクション生成処理の引数の仕様

## トランザクションタイプの指定方法

XYMを転送するトランザクションを作成する場合、従来は`’type’:’transfer’`と指定していたところ、`’type’:’transfer_transaction’`に変更。
“`python

元記事を表示

独自形式の実験データファイルをpandasで読み込む

[公式ドキュメント](https://pandas.pydata.org/docs/reference/api/pandas.read_table.html)をちゃんと読めばわかる話だったのだが,探し方が悪くなかなか見つからなかったので備忘録としてまとめる.

## 実験データを読み込む

Pythonでテーブルデータを扱うときはpandasのDataFrameとして読み込むことが多い.

測定機器が吐き出した実験データはちゃんとしたCSVにはなっているとは限らず,機器ごとに様々な形式を取っている.
「最初の5行にだけ余分なことが書いてあって6行目からテーブルデータになっている」のように要らない箇所が予めわかっていれば`header=6`のようにすれば良いが,状況によって行数が変わる場合はいちいち行数を確認するのは面倒である.

以下のように実験データの前後に一定の行頭符号が付いた付加情報が加わったファイルを読み込むときは,`comment`に行頭文字を指定すればその行は飛ばして読み込まれる.

“`text:実験データ
*RAS_DATA_START
*RAS_HEADER_STA

元記事を表示

kerasでカスタムレイヤ内に重みを複数追加する場合は名前を指定した方が良い

# はじめに
タイトル通り。
研究しているときに遭遇した問題とその直し方について共有。

# なぜ必要なのか
kerasでカスタムレイヤを作ったとき、`tf.Variable`あるいは`self.add_weight`をつかって重みを追加し、`model.save_weights`で`h5`を指定すると次のようなエラーが発生する。

“`py
import tensorflow as tf

class Preprocess(tf.keras.layers.Layer):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.mean = tf.Variable(tf.reshape([0.485, 0.456, 0.406], (1, 1, 1, -1)),
dtype=tf.float32, trainable=False)
self.std = tf.Variable(tf.resha

元記事を表示

【discord.py】Discord読み上げbot自作ノウハウ⑨ 読み上げテキストチャンネル指定編

Discord.pyを使ったDiscord読み上げbotでは
on_messageイベントが発生した時にその内容を読み上げるわけですが、
on_messageイベントはサーバー内のすべてのテキストチャンネルで発生します。

これがどういう意味なのかというと、あまり考えずに実装すると
サーバー内のすべてのテキストチャンネルが読み上げられることになります。

大きな規模のサーバーだと複数のボイスチャンネルがあったりするわけですが、
別のボイスチャンネルで通話中の聞き専メンバーの書き込みが読み上げられて、
混乱することがあります。

それを防ぐために、大手の読み上げbotでは、最初に読み上げ開始コマンドを打った
テキストチャンネルのみ読み上げる仕組みが多く採用されています。
それを真似した実装を紹介します。

また、最近のDiscordのアップデートで、ボイスチャンネルにテキストチャットが
内蔵されるようになりましたので、読み上げbotが居るボイスチャンネルの
テキストチャットのみ読み上げる実装も併せて紹介したいと思います。

https://support.discord.com/hc/j

元記事を表示

画像認識におけるOffline Data AugmentationをPytorchで実装してみる

# はじめに

大学院での研究活動において**画像認識タスクにおけるoffline data augmentation**を適用してみようと思い、Googleしたところ、online data augmentationの記事が多く、パッとoffline data augmentationを実装する方法が分からなかったので、ちょろちょろとPytorchのDatasetを用いて実装してみました。

最終的にたどり着いた実装方法としては、非常にシンプルなのですが、以下の通りです。

– 手順1: 元の画像データをDatasetで読み込む
– 手順2: Data augmentationを実行
– 手順3: それを再度ディレクトリにExport
– 手順4: 「元画像+ augmentatedされた画像」を再度Datasetで読み込んでモデリングに使用する

もし「他にもっと良い実装方法を知ってる!」という方がいましたら、ぜひコメントいただければ嬉しいです:)

# そもそも実装したい「Offline Data Augmentation」とは?

Data AugumentationとOf

元記事を表示

OTHERカテゴリの最新記事