Python関連のことを調べてみた2021年07月17日

Python関連のことを調べてみた2021年07月17日
目次

PythonでIIJのMachinistにメトリック送信して可視化

## Machinist とは
IIJのサービスに、[Machinist](https://machinist.iij.jp/)というものがあります。
メトリックを送信して、グラフにしてくれるサービスです。
「Getting Started」の「2. データの送信」にbashの例がありますが、これをPythonで書きました。

こんなグラフが書けます。

なお、この記事では、フリープランを利用しています。

## 環境
– Windows10
– Python 3.9.1
– [Machinist](https://machinist.iij.jp/)サービス

## APIキーの取得

メトリックを送信するために、APIキーが必要になります。
Machinist にログインすると、画面右上にMailアドレスが表示されます

元記事を表示

バグ: PyDrive で RedirectMissingLocation 例外が発生する(Python/Colaboratory)

Colaboratory から、大きなサイズのファイルを、`PyDrive` を使って Google ドライブにアップロードしようとすると、`RedirectMissingLocation` 例外が発生して失敗する。
回避方法は[こちら](#原因と回避方法)。

#問題の詳細
サンプルコードは以下のリンクを参照。
[外部データ: ローカル ファイル、ドライブ、スプレッドシート、Cloud Storage – Colaboratory](https://colab.research.google.com/notebooks/io.ipynb)
\> Google ドライブ > PyDrive

“`Python
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

auth.authenticate_user()
gauth = Go

元記事を表示

子供の YouTube 見すぎ問題を解決するために Python で嫌がらせをする

きっかけ
——–

以前は休日の度に子供を連れ出してあちこちに遊びに出かけていたのですが、コロナ禍のせいで気軽に外に出られなくなってしまいました。YouTube のおかげで家にこもっていても退屈はしないようですが、YouTube 見すぎが気になりはじめました。

手段
—-

以下の機能のスクリーンセーバー的なプログラムを作ることにしました。

– 全画面を隠す
– 小学生に解ける問題をいくつか出す
– 問題に全問正解したら画面を隠すのを止めて普通に見られるようにする

これを 5 分に一回繰り返すことにします。

高圧的に「YouTube 禁止!」と言わずに「YouTube を見るならその分ちょっとは勉強もしてね」という感じになることをイメージしています。

問題の内容ですが、ターゲットは小学一年生なので、最大 20 までの2つの数の足し算にしました。
いい問題を思いついたらその都度問題を追加・入れ替えしていこうと思います。

実装
—-

子供には Ubuntu を入れたパソコンを使わせています。

子供相手なので、当面ガチガチに抜け道を塞ぐ必要はないかと考え、お

元記事を表示

整数二進対数または一番左の立っているビット位置を求める関数をいくつか実装して比較する

# はじめに
## 整数二進対数とは
入力と出力がどちらも整数の、底を$2$とする対数です。式にすると以下の通りです。
$$
f(x) = \lfloor log_{2}{x} \rfloor
$$
これは整数を二進数で表現した際の、一番左に立っているビット位置(LSBを0として数えた場合)に等しいです。なお、対数なので$x=0$を未定義とします。

もう少し正確に表現すると、$x$の定義域は$1$以上の自然数です。

## どうして整数二進対数?
整数二進対数は完全平衡二分木の階層と一致します。つまり、配列で表現された完全平衡二分木の要素インデックス$i$($i$はゼロオリジン)から、その要素が属する階層$h$を整数二進対数で得る事ができます。

$$
階層h = \lfloor log_{2}{(i + 1)} \rfloor
$$

完全平衡二分木の階層インデックスとして扱いたいので、なるべく計算速度が速い実装方法を採用したいです。

# いくつかの実装と速度比較
本記事は、C言語で本実装する前の性能検証とプロトタイピングを目的として、pythonでいくつかの実装を試します。前提

元記事を表示

discord.pyでファイルを送信しようと思ったらこけた時のこと。

# discord.pyでファイルを送信しようと思ったらこけた時のこと。
タイトルの通りdiscord.pyでbotを作っていた時にこけたので対処法を忘れんうちに書いとく。
まずこけたコードはこれ

“`python
from PIL import Image
import io
import discord
async def send_pic(message :discord.Message):
pic = Image.open(“path”)
# ———–
# 色々画像処理
# ———–
data = io.BytesIO() # バイトライクオブジェクト作成
pic.save(data,format=”png”) # 保存
file = discord.File(data) # discord.pyのFileクラスのインスタンスを生成
await message.channel.send(content=”send pic”,file=file) # 送信
“`
PILで画像を読み込

元記事を表示

pythonでバブルソート作ってみた

## 背景
知り合いから、pythonの課題が解けないと言われた。
python全く書いたことない(普段はruby)けど、いけるやろうと思って、タイムアタック的な感じでやってみた。

## 所要時間
1時間くらい。
なんだかんだ文法を調べるのに時間がかかった印象。

## できたソースコード
“`python:sample.py
list = [4,6,1,2,8]
is_required_to_sort = True
max_compare_count = len(list) – 1

while is_required_to_sort:
sort_count = 0
for i in range(max_compare_count):
if list[i] < list[i + 1]: q = list[i] list[i] = list[i + 1] list[i + 1] = q sort_count += 1 if sort_count

元記事を表示

ニューラルネットワークの基礎を学びたい

#今回は何するの?
###ニューラルネットワークの仕組みを知る
表題に書きましたが、ニューラルネットワークの仕組みを理解し、応用できるように基礎を学んでみましたので、それをまとめていきたいと思います。
今回はこちらを参考にさせていただきました。

https://qiita.com/takahiro_itazuri/items/d2bea1c643d7cca11352

#勉強開始
###ニューラルネットワークってなに?
これは…記載しなくてもわかるわぁ〜という人も多いような…?
まぁ、後で見返した時のためにも記載しておきましょうか
>ニューラルネットワーク(Neural Network)
>※(NNと書かれることもあります)
>脳の神経回路の一部を模した数理モデル、または、パーセプトロンを複数組み合わせたものの総称
>入力値を関数に入れて、ある値を出力します。

ふむふむ、重要な部分は**「脳の神経回路の一部を模した数理モデル、または、パーセプトロンを複数組み合わせたものの総称」**ですね。
さて、ここでさらに注目するポイントは**パーセプトロン**ですね。
>「パーセプトロン(

元記事を表示

残プロ 第-45回 ~複数のpdfファイルを自動でタイトル付け~

# tkinterとargpurse

前回のプログラムにargpurseによるオプションの追加,GUIによるファイル・フォルダの選択を拡張しました.

~~~ python:PDFRename.py
import os
from os.path import expanduser
import argparse
import tkinter.filedialog
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.converter import PDFP

元記事を表示

【論文要約】変分オートエンコーダ(VAE)を用いた文生成

## はじめに
オートエンコーダ(AE)とは、左下の画像のように潜在変数 z にエンコードした後、もとの入力と一致するようにデコードするネットワークのことです。潜在変数 z は入力 x を圧縮したものだと考えることができます。一方で、z の存在する潜在空間がどのように使われているかは分からないため、適当な z をデコードしても意味のあるデータは生成されません。

変分オートエンコーダ(VAE)は、右下の画像のように、潜在変数 z がある確率分布に従うことを仮定しています。学習時には x’ が元の x と一致するように、かつ z が仮定した分布に近づくようにKL損失を設定してパラメータを更新します。これによって、仮定した分布に従う z をデコードすると、学習したデータを生成することができます。学習時には **posterior collapse** と呼ばれる、KL損失を小さくしようとするあまりに仮定した分布と完全に一致してしまい、**潜在変数 z を無視したデコードが行われてしまう現象**が起こらないように気をつける必要があります。

![image.png](https://qiit

元記事を表示

今日の数学: 正三角形の大きさを求めよ

# 問題

YouTubeで見かけた数学オリンピック対策の演習問題。
内点Pから各頂点までの距離がそれぞれ$a=5,b=7,c=8$であるとき、正三角形の大きさ$x$を求めよ。
![triangle.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192430/e443da3d-3d0a-ff35-1953-8e731505a02d.png)

# 解答例

YouTubeでは技巧的な補助線を引いて求めていたが、そんな発想力はないので、
三角関数を使用して、力ずくで解いてみる。

“`math
\begin{align}
\cos\phi&=\frac{b^2+x^2-a^2}{2bx}\\
\cos\psi&=\frac{b^2+x^2-c^2}{2bx}\\
\cos\left(\phi+\psi\right)&=\frac{1}{2}=\cos\phi\cos\psi-\sin\phi\sin\psi\\
\left(\cos\phi\cos\psi-\frac{1}{2}\right)^2&=

元記事を表示

独学プログラマーのまとめ その4

#初めに
よくわからない部分もあるが突き進むのも大事。

###5章 コンテナ
コンテナはデータ構造を保持する。

– 愚者はいつまでも悩み、賢者は尋ねる。
-「いつまでも」というのがポイント。自分で考えて無理なら直ちに尋ねる。

– メソッド
-関数に似た概念で特定のデータ型に密接に関連付けられている関数。通常の関数と違うのは呼び出し方。

“`python
“Hello”.upper() #後ろにつけている
“`
> ‘HELLO’

– リスト
– 好きな順番でオブジェクトを保存できるコンテナ。
– list関数か[]でリストが作成できる。
– 繰り返し処理で要素を1つずつ取り出せるオブジェクトは__イテラブル__(繰り返し可能)。
– リストは__ミュータブル__(変更可能)。

– タプル
– 好きな順番でオブジェクトを保存しておけるコンテナ。
– タプルは__イミュータブル__(変更不可能)。
– 変更不可能の利点は変わってほしくないデータを扱うのに便利ということ。
– 辞書

元記事を表示

ベクトル演算 (python,numpy)

## 0. 前処理

$d=3$として

“`python
x=np.array([1,2,3])
y=np.array([4,5,6])
“`
とします.

## 1. 内積(inner product)

“`math
x,y\in\mathbb{R}^d,=x^{\rm T}y=\sum^{n}_{i=1}x_iy_i
“`

“`python
np.dot(x,y),x@y
>> (32,32)

“`

## 2. 内積の逆(正式名称知りません)
“`math
x,y\in\mathbb{R}^d,xy^{\rm T}_{i,j}=x_iy_j,xy^{\rm T}\in\mathbb{R}^{d\times d}
“`

“`python
np.outer(x,y)
>> array([[ 4, 5, 6],
[ 8, 10, 12],
[12, 15, 18]])
“`

元記事を表示

最高のWeb開発プログラミング言語は何ですか?

さまざまなプログラミング言語がさまざまなプログラミング技術をサポートしており、それぞれに複雑さがあります。 さらに、新しいプログラミング言語がどんどん出現しており、それはまばゆいばかりです。
以下は、Web開発に最適な厳選されたプログラミング言語の一部です。各言語を選択する理由を詳しく紹介します。
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482909/5672757b-2a0b-6777-d6cd-b2bbb875b00d.jpeg)

##1.JavaScript
JavaScriptがWeb開発者によって最も人気があり言語の1つであることは間違いありません。さらに、Webアプリケーション、フロントエンドとバックエンド、およびモバイルアプリケーション(React Native)を同時に構築できる唯一のプログラミング言語です。
クライアント側のJavaScriptは非常に安全で高速であり、クライアントブラウザですばやく実行できます。 さらに、JavaScriptは比較的簡単に習得できます。

元記事を表示

DataFrame 参照

##参照とは
Dataframeのデータは行と列を指定することで参照ができる。
参照の方法は幾つかあり、ここではlocやilocを扱う。
主に、locは名前による参照、ilocは番号による参照を扱う。

##名前による参照
DataFrame型のデータの名前(インデックスやカラム)を使って参照する場合は、DataFrame型の変数dfに対して下記のように指定する。

“`
df.loc[“インデックスのリスト”, “カラムのリスト”]
“`
“`python
# DataFrameを作る
data = {“furuits”: [“apple”, “orange”, “banana”],
“year”: [2001, 2002, 2003],
“time”: [1, 4, 5]}
df = pd.DataFram
display(df)
“`
![スクリーンショット 2021-07-16 17.02.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

全くの0からDockerを学んでAWSにデータサイエンス可能なコンテナを立てる

## 最初に

今回は全くの0からDockerを学んでいこうと思う。そこで何を学んでいったか書いていく。

## Linuxについて

Dockerに入る前にLinuxのコマンドについて学んでいく。

### シェル

shell(シェル)を通してKernelに命令を出している。自分のMacのシェルはbashを使用している。他にはzsh, sh等がある。シェルを使うのに必要なアプリがターミナルになる。ターミナル=シェルではない。

### 環境変数

自分が使用するシェルが何か環境変数の中身を表示させて確認する。

“`bash
echo $SHELL

# 実行結果
/bin/bash
“`

環境変数を作成する。

“`bash
export AGE=20
echo $AGE

# 実行結果
20
“`

## Linux コマンド

### cd (current directory)

パスを移動する際に使用する。

### pwd(print working directory)

今いるディレクトリを表示する。

### mkdir(make directory)

元記事を表示

自宅のパソコンが非力なので、AWSで借りたGPUインスタンスにdocker環境を立て深層学習をさせてみた。

## 最初に
dockerについて勉強しているですが、そこで学んだ事を記事にしていこうと思う。
今回はAWSでGPUインスタンスを借りるので少し課金が必要になる。小まめにインスタンスを停止しておけば学習する際に課金した値段は$1.41ドルで済んだ。日本円で200円いないになる。

## AWSにGPUインスタンスを立てる

GPUのインスタンスを立てて処理が重い計算をコンテナにさせてみる。

### p2.xrage を使用するリクエストを申請する。

これを使用するには1時間あたり約100円かかる。Tesla k80 というGPUを積んでいる。

制限 > [vCPU 制限の計算](https://us-east-2.console.aws.amazon.com/ec2/v2/home?region=us-east-2#LimitsCalculator:) のページに行き `p2.xrage` を選択して オンデマンド制限の引き上げをリクエストをクリックする。リージョンはオレゴン(メジャーらしい)を選択する。 そして `New limit value` を `4` にする。そしてあ

元記事を表示

pythonでアレクサに好きな情報を好きなように喋らせたい -1.真面目にスキル開発編-

#はじめに
数年前、「アレクサ」「オーケーグーグル」なんてフレーズが流行りましたが、最近はあまりきかなくなりましたね。
そんなスマートブームも下火になった昨今ですが、ようやく私もアレクサを導入しました。
(ケーズデンキでAmazon Echo dotの3世代を2000円で買いました!安い!)

さて、この記事は、

「アレクサに話しかけて自分の好きな情報を喋らせよう」
「クレジットカード登録とか一切せずに、完全無料ですませよう」

という至ってシンプルな目的のもとで書いています。
目次としては、以下の通りです。いくつかの記事に分けて投稿予定です。

“`
1.スキル開発で好きな情報を喋らせる!
→△ 申請に引っかかってできない申請めんどくさい。
2.iphone×pythonista×ショートカットを踏み台にして好きな情報を喋らせる!
→△ 既存スキルの問題で喋らせられる文字数が少ない。
3.twitterを踏み台にして好きな情報を喋らせる!
→? いけるんちゃうか???
“`

#余談
今回やりたいことはアレクサに任意のお話をさせることです。
ですがこれがなかなか制限

元記事を表示

SPSS Modelerのバランス・ノードをPythonで書き換える。アンバランスデータの修正

SPSS Modelerで目的変数のレコード数に不均衡がある場合にそのバランスをそろえるのがバランス・ノードです。
このバランス・ノードを解説するとともに、Pythonのpandasで書き換えてみます。

#0.元データ

ここではローン審査での、顧客の属性と判定したリスクの入ったデータを使います。Riskが1の場合はリスクの高い顧客、0はリスクの低い顧客を示しています。

CustID:顧客番号
Age:年齢
Car_loans:車のローンランク
Credit_cards:クレジットカード利用ランク
Education:教育ランク
Income:収入ランク
Risk:リスクありなし

500件あります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/bc7c63ee-3924-93e7-dd50-025f44bdd1dd.png)

Riskの1と0のレコード件数を比較するとRisk=1のレコードは全体の25%、Risk=0のレコードは75%で、アンバランスになっているこ

元記事を表示

ADX2スクリプトで原音再生

# 内容
[pyaudio](https://people.csail.mit.edu/hubert/pyaudio/)を利用するとオーディオの解析とかできそうなので
とりあえず選択したウェーブフォームの元波形を再生するものを作ってみた

環境:CRI Atom Craft 3.45.00

# pyaudioのインストール
windowsでpython3.8を使っているのですが、pyaudioがインストールできなくて、
[これ](https://stackoverflow.com/questions/53866104/pyaudio-failed-to-install-windows-10/53866322)
を参考にインストールした。

[pipwin](https://pypi.org/project/pipwin/)
何か非公式なものみたいだけど・・・とりあえず動いた

# スクリプト
“` PlayWav.py
# –Description:[tatmos][Preview]選択したオブジェクトの原音を再生

import pyaudio
import wave
imp

元記事を表示

PythonでImageJを使うときに保存する際のpathのあれこれ

線虫の二値化を行ってROIを取得し、そのROIで蛍光測定するプログラムを作りました。
(このプログラムについては公開するのかどうか、していいのかどうかよくわからないので興味ある方はお声がけ頂ければ個別に対応します。)

そのプログラムの過程で、ROI、測定結果(形態、蛍光値)等々のデータoutputにおいて、pathの処理や保存行程で少々手間取ったので備忘録的に書き残しておきます。

まずベースに参考にしたサイト様達

http://wiki.cmci.info/documents/130800snb

画像解析にPythonを導入した経緯として、七面倒くさい諸々の処理を何回もやるのが鬱陶しいのでバッチ処理を施して楽にしようという魂胆がありました。そのため、複数の画像に処理を欠けられるシステムが先決。

そこで、Fijiでバッチ処理を行うファイルを選択するために、フォルダを選ぶ行程があるのですが、それは上記の2サイトどちらでもjavaのシステムである

元記事を表示

OTHERカテゴリの最新記事