- 1. 駄目グラフ003
- 2. 【配列に対しての複雑な処理】集団行動
- 3. ヒューリスティック(AHC)用にoptunaで雑にパラメタチューニングできるようにした
- 4. [Python][Julia]Project euler2 (プロジェクトオイラー2)
- 5. Python初心者が実装で気づいたこと
- 6. ボウリング Python3編
- 7. 場所取り (paizaランク C 相当)
- 8. Django+Pythonでパスワードリセットを実装する+viewカスタイズ
- 9. 【Python入門】for文を使った繰り返し処理
- 10. 【Python入門】if文を使った条件分岐
- 11. アンモニウムイオンかどうかの判定アルゴリズムの作成(ログ)
- 12. asariを実行した時に発生したロケールのエラーの対処
- 13. Touchdesigner 2023 注目のアップデートまとめ
- 14. 面倒くさい作業をPythonにやらせてみた(NSight Systems測定結果の集計を楽にするツールの実装)
- 15. 骨格のランドマーク推定でダンスを比較する【スコア調整】
- 16. numpyで重複有配列のrankを計算する方法
- 17. 二人三脚 Python3編
- 18. [Python][Julia]Project euler1 (プロジェクトオイラー1)
- 19. 駄目グラフ002
- 20. 駄目グラフ001
駄目グラフ003
ダイナマイトプロットは描かない
## ![20111210220621.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/ed27d75a-0f9d-74d5-bdbe-211dc2d9f653.jpeg)
そもそも,エラーバーも何を基準にするか。何を基準にしても,わかりにくいことに違いはないが。
【配列に対しての複雑な処理】集団行動
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__group_move
“`py
N,Q = map(int,input().split())
A = [a for a in range(1,N+1)]
for i in range(1,Q+1):
tmp = []
tmp = input().split()
if tmp[0] == ‘reverse’:
A.reverse()
elif tmp[0] == ‘swap’:
num = A[tmp[1]+1]
A[tmp[1]+1] = A[tmp[2]+1]
A[tmp[2]+1] = num
elif tmp[0] == ‘resize’:
c = int(tmp[1])
A = A[:c]
print(*A,sep=”\n”)“`
ヒューリスティック(AHC)用にoptunaで雑にパラメタチューニングできるようにした
# やった事
– スコアを出せるコードと調整するパラメタが決まっている状態でパラメタ探索をできるようにした
– google colab上で動く言語、コードなら調整すればいけそう
– 探索はoptunaに全まかせ
– 探索速度は少し妥協
– テスト毎にosでコードを実行している為# 動機
AHC_029に参加した際に、パラメタ探索の為に無駄に提出回数を稼いでしまった事を後悔しているので、どうにかしたいと思い作成しました![スクリーンショット 2023-12-27 16.58.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3292016/3c0a8c4c-7388-4ceb-e7b4-025b74e854ea.png)
# 参考にしたサイト
https://blog.knshnb.com/posts/ahc007-optuna/# 参考先と異なる点
– google colabで動かす事を重視
– pythonユーザーに使いやすく# 作成し
[Python][Julia]Project euler2 (プロジェクトオイラー2)
#### Project euler Ploblem 2 (プロジェクトオイラー2)
Even Fibonacci Numbers備忘のために残しておく。
## 問題文
フィボナッチ数列において、新しい項は前2項を足したもので生成される。
1と2から始めた場合、最初の10項は以下の通りである。
1,2,3,5,8,13,21,34,55,89,…
400万を超えない値のフィボナッチ数列の項を考えたとき、値が偶数の項の合計を求めよ。#### (原文)
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be
1,2,3,5,8,13,21,34,55,89,…
By considering the terms in the Fibonacci sequence whose values do not exceed four million, fin
Python初心者が実装で気づいたこと
最近社内のpythonツールの修正を改善したく、実装してみました。
すると、はまったとか気づいたことがありますので、忘れないようそして他の方の参考になれるようにこの記事に書くようにします。# 勉強になった点
## int型でファイルへの書き込みはできない
pythonは変数定義の際に型の指定は必要ないが、method呼び出す際に型がチェックされることがあると今回のことでわかりました。
書き込みは以下のコードで実現しています。
“`Python
filePath = {ファイルのパス}
pageNoFile = open(filePath, ‘w’)
pageNoFile.write(pageCount)
pageNoFile.close()
“`pageNoみたいな数字をファイルに書き込むと以下のエラーになります。
“`
TypeError: write() argument must be str, not int
“`
pageCountが数字とかのint型である場合、以下のようにstring型に変換できます。
“`
str(p
ボウリング Python3編
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__bowling
配列に入れるのに苦労した。
※配列の入れ方は注意“`py
p = []
#1の位置
sum_pin = 0
#1じゃない残り
ans = 0for i in range(4):
p += input().split()for i in range(10):
if p[i] == “1”:
ans += 1
sum_pin = 10 – iprint(sum_pin)
print(ans)“`
場所取り (paizaランク C 相当)
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__line_up
参考になったのは
https://qiita.com/Atsulabo/items/14b63e43f8dbab0698cb
https://qiita.com/Atsulabo/items/f7467fbf69e89d2b1f94
1)とりあえずデータを取得しておく
2)ポップ関数で要素を頭から減らす
3)重複は1つだけにして減らしてB配列として定義
4)出力“`py
N,K,F = map(int,input().split())A = [int(input()) for _ in range(K)]
for i in range(F):
A.pop(0)#重複取り除いたのをB列へ
B = []
for i in range(len(A)):
if i == 0:
B.append(A[i])
else:
for i in
Django+Pythonでパスワードリセットを実装する+viewカスタイズ
## 環境
Windows11
Python 3.10.5
Django 4.2.7## 経緯
Django+Pythonで学習がてらBlog作成中、パスワードリセット機能もつけたいと思い。## views.py
class PasswordReset(PasswordResetView):
# パスワードリセット用URLの送信ページ
success_url = reverse_lazy(“blogapp:password_reset_done”)
# パスワード変更URL付きメールのカスタマイズ
email_template_name = “blogapp/password_reset_email.html”
template_name = “blogapp/password_reset_form.html”class PasswordResetDone(PasswordResetDoneView):
# パスワード変更用URL送信完了ページ
【Python入門】for文を使った繰り返し処理
for文とは、繰り返し処理に使用する構文のことです。
“`書き方
for 変数 in リスト:
処理
“`# 記載例
“`python
hoge_list = [1, 2, 3]
for i in hoge_list:
print(i)> 1
> 2
> 3
“`
* 繰り返し処理時、インデックス番号を取得
“`python
hoge_list = [“A”, “B”, “C”]
# 「1」の部分に記載した数からカウントされる(記載しない場合、0から)
# countにインデックス番号、iに要素が入る
for count, i in enumerate(hoge_list, 1):
print(f”{count}番目: {i}”)> 1番目: A
> 2番目: B
> 3番目: C
“`
* 次の要素にスキップする場合
“`python
hoge_list = [1, 2, 3]
for i in hoge_list:
if i == 2:
continue
print(i)
【Python入門】if文を使った条件分岐
if文とは、条件分岐に使用する構文のことです。
例)○○の場合、△△である。“`書き方
if 条件A:
処理A
elif 条件B:
処理B
else:
処理C
“`# 記載例
* str型の場合
“`python
city = “東京”
if city == “東京”:
print(“東京に住んでいます”)
elif city == “大阪”:
print(“大阪に住んでいます”)
else:
print(“東京・大阪ではない場所にに住んでいます”)> 東京に住んでいます
“`
* bool型の場合
「if flag:」でTrue、「if not flag:」でFalseを表すことができる。
“`python
flag: bool = False
if flag:
print(“True”)
else:
print(“False”)> False
“`
* int型の場合
“`python
age: int = 25
if age < 20: print("20歳未満です")
アンモニウムイオンかどうかの判定アルゴリズムの作成(ログ)
## 目標
POSCARファイルから,アンモニウムイオンを含むどうかを判定するアルゴリズムを作成する.## 前準備
0-1.元素種N, Hを含むPOSCARファイルから,POSCAR.nnlistを作成し,NとHの結合距離の分布図を描く.
0-2.0-1.よりアンモニウムイオンのNH間の結合距離の最大値を推定する.(注)## 結合探索アルゴリズム
1.POSCARファイルが元素種N, Hを含む
2.POSCAR.nnlistにおいて,原子Nから0-2.で推定したNH結合距離以内に,原子Nに対するNeigborsListに原子Hを4つ以上含む,中心原子Nが存在する.
####### 条件1:原子Nから原子Hに対して,結合手がちょうど4本生えているか? #######
3.2.の中心原子Nに対して,
1番近い原子がHであり,かつ2番目・3番目・4番目に近い原子もHである,中心原子Nが存在する.
4.2.の中心原子Nに対して,5番目に近い
asariを実行した時に発生したロケールのエラーの対処
SageMaker Notebookインスタンス上で、asariを使って日本語の感情分析(ポジティブ・ネガティブ)を実行しようとした時に発生したエラーと対処方法を記録したメモです。
# 発生したエラー
実行コマンド on Jupyter Noteboook
“`
! pip install asarifrom asari.api import Sonar
sonar = Sonar()
“`発生したエラーメッセージ
“`
RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: /onnxruntime_src/onnxruntime/core/providers/cpu/nn/string_normalizer.cc:100 onnxruntime::string_normalizer::Locale::Locale(const string&)::Failed to construct locale wit
Touchdesigner 2023 注目のアップデートまとめ
皆さんメリークリスマス!生体情報連動系インタラクティブコンテンツを作成しているまるです。
今年のTouchアドカレは今月5日に行われた、「Build 2023.11290」の大型アップデートについてまとめます。
個人的には熱望していた機能が沢山実装され、超絶アツいアップデート!
「これみんな知ってるとたぶん役立つぜ」、ってやつを要点絞って紹介していきます。
(その為細かいバグの修正みたいなものは省きます)まだ知らない方は要チェックです。
では早速いきましょう。## Body Track CHOP
![BodyTrack.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217271/37d3ae2d-f082-d4b9-6d0d-69b02dbd3d28.jpeg)
まずはこれ!遂に来ました!
Kinectが不要になるボディトラッキングCHOPです。注意点としてはWindows専用であることと、NVidiaのMaxineシステムのSDKを使用
面倒くさい作業をPythonにやらせてみた(NSight Systems測定結果の集計を楽にするツールの実装)
この記事は[Python Advent Calendar 2023](https://qiita.com/advent-calendar/2023/python) シリーズ3 21日目の投稿です。
# 概要
NVIDIAが開発、公開してるNSight Systemsというプロファイラーを利用して測定した結果を集計する時にExcelで集計しやすい形式に変換するツールを実装します。# 事の起こり
業務でGPUアプリケーション(AIモデル)の性能測定を行っています。測定にはNSight Systemsを利用しています。このプロファイラーはなかなか優れ物で、機能も豊富、~~動作は鈍重~~、ということでGPUを利用するアプリケーションの性能測定には必須のツールです。GPUを搭載したサーバーで測定を実施後、自分の端末に結果ファイルをダウンロードしてGUIアプリケーション上で結果を見ている時に、CUDA GPU Kernel Summary等の数値を見たい時に、以下のウィンドウで数値を確認出来ます。![image.png](https://qiita-image-store.s3.ap-n
骨格のランドマーク推定でダンスを比較する【スコア調整】
## 概要
前回,音楽を元に同期された動画を入力し,ダンスの比較するプログラムを作った.
https://qiita.com/Killinneko/items/58b4377ba03da7a9c037
比較にはコサイン類似度を用いている.
遊び要素として,各フレームでのコサイン類似度の平均をスコアとしたが,
お手本の動画と関係がない動きをしても,だいたい40点くらいは取れてしまう.
そこで,スコアの計算にシグモイド関数や最低・最高点の設定を用いてスコアの調整を行う.## スコアの調整:シグモイド関数
### シグモイド関数とは
以下の`f(x)`で表される関数で,どのようなxを入力しても0~1の範囲に変換する関数.
ニューラルネットワークの活性化関数で0か1に近づけたいときに利用される.
今回のスコアの計算も同じように,2値化に近い計算をしたいので利用する.シグモイド関数のパラメータとして,`α`があるが,数値が大きいほど0から1の変化が急になる.
“`math
f(x) = \frac{1}{1+e^{-ax}}
““
### 実装閾値でスコアの調整
numpyで重複有配列のrankを計算する方法
配列に対して,各要素のrankingを求めたいとします.
ただし,引き分けがあった場合は,同順位として,次の順位は前の順位+1から再開するものとします.
例えば,`[1,1,2,2,3]`という配列の順位は`[0,0,1,1,2]`というように得たいものとします.
そのような計算は実は`np.unique`で得ることができます.“`python
import numpy as npA = [1, 1, 2, 2, 3]
_, ranks = np.unique(A, return_inverse=True)
print(ranks)
>>> [0, 0, 1, 1, 2]
“`
二人三脚 Python3編
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__find_pair
全く考えつかず。
小さい順にソートするとか
一番小さい数にするとか考えたけど。
結局だめだった。5つの要素があるとして、
数学を思い出して、場合分けってどうやると考えたときに、
5つの数から最初に選び出す場合5通りある。
2回目は4通り。
だから20通りあるというのはわかったが。たしか今までに学んだこととして、すべてのペアの組み合わせを出す方法があった。
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__reduce
これに対する私の記事
https://qiita.com/Atsulabo/items/347ca18e1ccf234c42bc
これをヒントにして多重ループ文を作成。
答えはペアにさせればよいのでansで配列を作っておく。
で最初のdiffより小さいのがあればd
[Python][Julia]Project euler1 (プロジェクトオイラー1)
### Project euler Ploblem 1 (プロジェクトオイラー1)
#### Multiples of 3 or 5備忘のために残しておく。
#### 問題文
10未満の自然数のうち、3または5の倍数をリストアップすると、3,5,6,9となる。
これら倍数の和は23である。
1000未満の3または5の倍数の和を求めよ。(原文)
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3,5,6 and 9.
The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.#### 答え
233168#### pythonのコード
“`Python:Ploblem1(Python)
def sum_multiples(limit):
ans = 0
for i in range(1,limit):
if
駄目グラフ002
## 円グラフは使うな
「円グラフは使うな」で検索すると山ほど出てくる。
– https://matsuda-blog.info/2129/
– https://jikitourai.net/dont-use-piechart
– https://100athlon.com/dont-use-pie-charts-easily/
– https://dataviz.hatenablog.com/entry/2019/02/05/180316
– https://mainichi.doda.jp/article/2020/03/17/1810
– https://ameblo.jp/saayykka/entry-12793745540.html
– https://www.wingarc.com/product/motionboard/blog/graph_type.html
– https://www.ashisuto.co.jp/qlik-training_blog/article/save-the-pies-for-dessert-japanese.html
– https:/
駄目グラフ001
## デフォルト設定でグラフを描くな
### 課題
平均値 50 点,標準偏差 10 点の正規分布に従うと仮定される 1 万人分の試験成績のヒストグラムを描け。
“`python
import matplotlib.pyplot as plt
import numpy as np
“`### 架空データの生成
“`python
np.random.seed(12345)
x = np.random.randn(10000)*10+50
“`### 何も考えず,デフォルトでヒストグラムを描く
“`python
plt.hist(x);
“`![output_6_0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/2f48f890-8afd-e729-64a0-ae5c3dc21428.png)
### 階級設定をちゃんとする
上のグラフは,階級の設定が変!
階級の開始値と階級幅は「きれいな数」にするのが慣例である。
「き