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

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

地獄のフィボナッチ数列@Python

誰か助けてください.

# できごと

とあるプログラミング勉強用の問題を出すサイトにて(サイト名は言うと問題のネタバレになりかねないので秘密だよ)フィボナッチ数列の実装を求められたよ

# 序章

ぼく「これ簡単やな!^^」

“`Python:fib1
def fib(seq):
if seq == 0:
return 0
if seq == 1:
return 1
return fib(seq-1) + fib(seq-2)
“`

エラー発生
ぼく「どこがおかしいんだ?」

テスト内容
`
fib(1000) fib(-36)
`
ぼく「??????????????????????????????」

# ちょっと調べた

ワイ「[負数への拡張](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0#%E8%B2%A0%E6%95%B0%E7%95%AA%E3%81%B8%E3%81%

元記事を表示

画像1枚からのポイントクラウド生成

# ゴール

今回は、1枚の画像から深度情報を推定できるAIモデルを用い、ポイントクラウド(点群)を生成します。

# ポイントクラウドとは

ポイントクラウドとは、空間上の点の集まりのことです。十分な点数があれば、3次元の形状や物体を表現することができます。

# 深度マップとは

深度マップは、カメラからどれくらい離れているのかを推定したものです。

![distance.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1164173/cc684835-f027-2122-27c8-d292d193df88.png)

深度情報には、相対的なものと絶対的なものがあります。相対的な深度の場合、値2は深度値1の2倍の距離ですが、現実の距離を正確に伝えるものではありません。絶対深度は、現実の距離を伝えることができます。

今回は、相対的な距離を使用します。

# 深度情報を予測するAIモデル

今回、深度推定に使用するのは、[MiDaS](https://github.com/isl-org/MiDaS) 

元記事を表示

EnvaderでPythonの環境構築を学んだのでmacで実践してみる(第5回)

## はじめに
はじめましてa-min3150です。エンジニアへの転職を目標に学習中です。
アウトプットのためEnvaderで学習したこと、ハマったことなどを書いていきたいと思います。

## 今回の学習内容
EnvaderでPythonの環境構築について学習したのでアウトプットします。

今回は第5回目でmacでの“`virtualenv“`を使った仮想環境設定についてです。

第1回目は[こちら](https://qiita.com/a-min3150/items/bf2e575668cc986dd5d9)
第2回目は[こちら](https://qiita.com/a-min3150/items/56b2e9bf8957d3247d81)
第3回目は[こちら](https://qiita.com/a-min3150/items/6d1c9b7b3b4cd5039f39)
第4回目は[こちら](https://qiita.com/a-min3150/items/6211b80617d00284a081)

## “`virtualenv“`について
こちらでは、Python

元記事を表示

Atcoder B – Nice Shopping

## 問題
https://atcoder.jp/contests/hitachi2020/tasks/hitachi2020_b

## 回答

“`Python
A,B,M = map(int,input().split())
a = list(map(int,input().split()))#冷蔵庫
b = list(map(int,input().split()))#電子レンジ
ans = min(a) + min(b)

for i in range(M):
x,y,c = map(int,input().split())
num = a[x-1] + b[y-1] – c
if ans > num:
ans = num

print(ans)

“`

または
“`Python
A,B,M = map(int,input().split())
a = list(map(int,input().split()))#冷蔵庫
b = list(map(int,input().split()))#電子レンジ
ans = min(a)+min(b)
f

元記事を表示

Python学習記録_2日目.機械学習とは&Pythonの基本的な処理や関数

# 元記事
[Python学習記録_プログラミングガチ初心者がKaggle参加を目指す日記](https://qiita.com/noway6064/items/14ab494dc65d3040f733)
こちらの2日目の学習内容まとめ。
~~前半は前提知識というか概念とかの話が多かったのでかなりサクサク進めることができました。~~
for文で思い切り躓きました。
これが独学の辛いところ…

### scikit-learn 10m …
##### scikit-learnとは
>scikit-learn(サイキット・ラーン)はPython用の機械学習ライブラリです。
scikit-learnはオープンソースで公開されており、個人・商用問わず、誰でも無料で利用することが出来ます。
また、教師あり学習、教師なし学習に関するアルゴリズム(サポートベクターマシン、ランダムフォレスト、回帰、クラスタリングなど)が一通り利用出来る上、別章でも紹介しますがサンプルのデータセット(トイデータセットと呼びます)が豊富に揃っています。
そのためscikit-learnを用いるとすぐさま機械学習プログラ

元記事を表示

Plotlyのローソク足描画が遅いのでBokehを採用した話

![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2591762/ee808bf7-d526-b38e-f608-0e2c5ce95be3.gif)

ローソク足チャートを[Plotly](https://plotly.com/python/)で書くと、少ないコード量でインタラクティブなグラフができて、素晴らしいのですが、10年分のデータくらいで我慢できないくらい描画が遅くなっていました。
[Backtesting.py](https://kernc.github.io/backtesting.py/)で出力するグラフだと全然固まらないのでいいなーと思っていたら、[Bokeh](https://docs.bokeh.org/en/latest/)を使っていたので、bokehでローソク足を書いてみました。
コード量は多くなるのですが、作りたいグラフを作れたので、Bokehもいいぞって思いました。

以下のローソク足は、例えば買いシグナル周辺の値動きを見たいときを想定したチャートで、データはp

元記事を表示

1年前の日付を求める

1年前の日付とググるとdateutilの`relativedelta()`を使う旨がよく出てくる。
一目datetimeでマイナス365日で良さそうだが`うるう年`を考慮すると`relativedelta()`が良いようだ。

| 日付 | timedelta(days=365) | relativedelta(years=1) | 備考 |
| ——— | ——————– | ———————- | – |
| 2020/2/28 | 2019/02/28 | 2019-02-28 | 期待通り|
| 2020/2/29 | 2019/03/01 | 2019-02-28 | うるう年はずれる|
| 2020/3/01 | 2019/03/02 | 2019-03-01 | 同上|

“`

// 2020/2/28 の365日前
$ python3 -c “import d

元記事を表示

mediapipeを試す17行

![SS 192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/a41cd967-f549-8677-1efa-2e99bf69518d.png) 顔に線がびっしり張り付くやつ

# mediapipeにとっつきたい
表情認識などで使われるmediapipeを手元のpythonで使ってみます。
使い方の理解のためになるべくシンプルにして試します。

# 準備
がんばってmediapipeをインストールします。
方法は調べると出てくると思います。
M1 Macの場合はminiforgeでpython3.8の環境を作ったところ、openCVもmediapipeもインストールできました。

# 参考記事
[MediaPipe Face Mesh](https://google.github.io/mediapipe/solutions/face_mesh.html)
こちらの公式記事にあるスクリプトを、解説用にギリ動作するレベルまで短く刈り込んでいます。

# 理解のための素朴なコード
もろも

元記事を表示

motoでPynamoDBのモデルをテストする

DynamoDBのORMの[PynamoDB](https://github.com/pynamodb/PynamoDB)で作ったモデルを、motoを使ってテストするためのコード例です。

“`
> pip install moto pynamodb pytest
“`

“`
/
├─models
│ └─user.py
└─tests
├─__init__.py
└─test_user.py
“`

“`python:models/user.py
from pynamodb.models import Model
from pynamodb.attributes import (
UnicodeAttribute,
NumberAttribute,
ListAttribute,
)

class UserModel(Model):
class Meta:
table_name = ‘user’
region = ‘ap-northeast-1’

id = UnicodeAt

元記事を表示

Centos7 LAMPJ & LEMPJ

sudo vi LAMPJ.sh

“`bash

#MySQL公式のリポジトリの登録(https://dev.mysql.com/downloads/repo/yum/ を参照して、 Red Hat Enterprise Linux 7 用の最新のリポジトリを追加する)
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum -y remove mariadb-libs
sudo rm -rf /var/lib/mysql
sudo rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum -y install –enablerepo=mysql80-community mysql-community-server
sudo yum update
sudo rpm –import https://repo.mysql.com/RPM-GPG-KEY-my

元記事を表示

私が書いた記事×2

 過去に私が書いた記事のリンクを張っていく場所です.

https://qiita.com/CEML/items/b378d4b26831bb8c9059

https://qiita.com/CEML/items/5c745438383f4315c542

これからはこちらのアカウントに記事を投稿していこうと思います.

元記事を表示

PythonのTypedDictのキーの有無・値の型をチェックするツールtypeddict-validatorを作った

JSON を受け取る API などでは、多くの場合で何らかのバリデーションをしていると思うが、そのバリデーションに Python の TypedDict を使えるようにしてみました。

## 概要

https://github.com/SogoKato/typeddict-validator

TypedDict を使って辞書型のデータをバリデーションするユーティリティ。辞書が必要なキーを持っているかや、値が適切な型を持っているかを再帰的にチェックします。 API リクエストや何らかのファイルのような、 JSON や YAML をデシリアライズするシーンで便利です。

現在のところ、一般的な型および Optional を含む Union 型をサポートしています。

## 要件

* Python 3.10 以降

## インストール

PyPI からインストールできます。
https://pypi.org/project/typeddict-validator/

“`
pip install typeddict-validator
“`

## つかいかた

`validate

元記事を表示

argparseのヘルプメッセージ改行位置を変更する方法

Pythonのコマンドラインツール開発では`argparse`がオプションパーサとしてよく利用されます。argparseによるヘルプメッセージ表示機能で「いや、そんな微妙なところで改行しないでよ…」って思うことが最近ありました。

本記事では、そういった場面で`argparse`によるヘルプメッセージ改行位置を変更する方法について紹介します。

# 微妙なヘルプメッセージ改行例

“`python:argparse_bad_help_msg.py
import argparse

desc = “ArgParse Test Program”
parser = argparse.ArgumentParser(description=desc)
parser.add_argument(“–input”, help=”Input data”, metavar=””)
parser.add_argument(“–output”, help=”Output data”, metavar=””)
parser.add_argument(“–parameter1”, help=”Para

元記事を表示

【Python】リストの列に同じ値を埋める【Numpy】

# はじめに
自分が調べた限り、2次元リストの列に同じ値を埋める方法がfor文しかなかったので、使わない方法を以下に載せます。

~~~
import numpy as np

# 5×5の2次元リストを作成
array = np.zeros(5*5).reshape((5,5))

# 4列目に「1」を埋める
array[:,3].fill(1)
~~~

# おまけ
行に同じ値を埋めたい場合は以下になります。

~~~
# 3行目に「1」を埋める
array[2].fill(1)
~~~

# 追記
コメントでの@WolfMoon様のやり方が簡素だったので載せさせて頂きます。コメントありがとうございます。

~~~
array[:, 3] = 1 # 列に同じ値を代入
array[1, :] = 200 # 行に同じ値を代入
~~~

# まとめ
ゲーム制作でマップを2次元リストで表現する際に躓いたので載せました。
誰かの参考になれば幸いです。
また他に良い方法があればコメントで教えて下さるとありがたいです。

元記事を表示

CloudWatchカスタムメトリクスのデータをboto3で取得

こちらの記事を参考に、boto3を使用してCloudWatchメトリクスデータを取得しようとしました。

https://qiita.com/K-Nomu3/items/ae7b043c6a75a774edc7

標準メトリクスデータは問題なく取得できたのですが、EC2のメモリ使用率等のカスタムメトリクスデータを同じように取得しようとしてもデータ件数0件でレスポンスが返されてしまったので、原因を調査しました。

# 原因

メトリクスが複数のディメンションで作成されている場合、取得時に全てのディメンションを指定する必要がありました。
ディメンションとは、メトリクスの一意の識別子として機能するものです。
先の記事では標準メトリクスを取得するにあたりディメンションは「InstanceId」のみの指定で十分でしたが、カスタムメトリクスでは不十分でした。

# 解決方法

今回は名前空間「CWAgent」の「mem_used_percent」データを取得します。

### ディメンションを調べる

コンソールで下記を実行します。
“`
$ aws cloudwatch list-metric

元記事を表示

python学習:tkinterを使ってファイル起動・整理アプリを作ってみた ~Part3~

前回のPART2では「フォルダ・ファイル選択画面」について解説しました。今回は「ファイル整理画面」について解説していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631873/d2c40e57-4f45-3759-412c-4a190221026d.png)

ファイル整理画面の目的は、整理したいファイル(別フォルダに移動させたい時など)を任意のフォルダに移動させる画面です。それではコードを見ていきましょう。

“`py
def sub_window2():

# ウインドウの作成
mini_window2 = tk.Toplevel(root)
mini_window2.title(“ファイル整理画面”)

# ラベルフレーム2
frm2 = ttk.Labelframe(mini_window2,text = “ファイル整理”,
padding = 10)

元記事を表示

指値板を用いたCNNによる価格予想

# はじめに

本記事は、「DeepLOB: Deep Convolutional Neural Networks for Limit Order Books」の紹介です。原論文に加筆、編集を行なっています。

https://arxiv.org/pdf/1808.03668.pdf

論文で紹介しているgithubです。コードは、zcakhaa/DeepLOB-Deep-Convolutional-Neural-Networks-for-Limit-Order-Books/run_train_tensorflow-version2.ipynbからの引用です。

https://github.com/zcakhaa/DeepLOB-Deep-Convolutional-Neural-Networks-for-Limit-Order-Books

# 要約

> 私たちは、現金株式の指値注文帳(LOB)データからの価格変動を予測するための大規模なディープラーニングモデルを開発しています。このアーキテクチャは、畳み込みフィルタを使用して、リミットオーダーブックとLSTMモジュールの空間構造

元記事を表示

parrot-sphinx インストール,利用 その2

# parrot-sphinxインストールなどの備忘録
parrot製のドローンのシミュレーションが利用できる,parrot-sphinxのインストールや利用方法,またROSとの連携についてこれから随時記録していきたいと思っています.(parrot-sphinx ver2.5.1)
※parrot-sphinx インストール,利用 その1の続き

## firmwared サービスへの接続

sudo systemctl start firmwared.service
この時にfirmwared.serviceがうまく起動できているか,確認したいときは以下の2つで確認します.

cat /etc/group|grep firmwared
>>> firmwared:x:135:<パソコンの名前>
うまくできていない時は,一番後ろにパソコンの名前が出力されていないと思います.

id -nG
>>> <パソコンの名前> adm cdrom sudo dip plugdev lpadmin lxd sambashare firmwared
firmw

元記事を表示

初心者がAWS Lambdaを活用してログインが必要なGoogle Formに自動回答するプログラムを作ってみた

みなさんこんにちは。コロナが収まったかと思えばまた蔓延したりとまだまだ大変ですね。

昨今は部活や大学、高校などで毎日体温を測定しGoogle Formなどで○○時までに提出するよう求められることがあると思います。僕も毎日(決まりでは)提出しないといけないのですが、根がズボラなのでサボりがちです。
こんなだらしない人間がこの問題を解決するにはプログラミングしかない!中学生の頃にHSP(Hot Soup Processor)を少し触った程度の初心者だけどプログラミングのいい勉強にもなるだろう、ということで毎日決まった時間に自動送信するプログラムを作りたいと思いました。

今回は、途中でログインが必要となるタイプのフォームに対してのプログラムです。**ただし、Google Workplace for Educationに登録されている大学のアカウントを用いたログインのため、Googleログインの途中で大学アカウントのログインページに移行しています。** そのためGoogleがHeadless操作を検知してログインできない、ということは起こりませんでした。一般のGoogleアカウントを用いた

元記事を表示

condaでライブラリインストールする手順

command prompt (anaconda)を管理者権限で起動して以下実行

“`conda-init.cmd
conda activate base
conda init
conda install [library-name]
“`

元記事を表示

OTHERカテゴリの最新記事