Python関連のことを調べてみた2020年11月25日

Python関連のことを調べてみた2020年11月25日

Python-LEGO Mindstormsのセンサーをスレッドで非同期処理する

今回はLEGO Mindstorms EV3(以降EV3)のセンサーを複数待機状態にして、それぞれがしきい値に達した際になにかしらのアクションを行わせる。センサーごとにスレッドを定義し、それぞれのスレッドを非同期に処理させていく。

## EV3について
教育版 [LEGO® MINDSTORMS EV3](https://afrel.co.jp/product/ev3-introduction)

## 本記事内での環境
* PC
Windows10
Python 3.7.3
開発環境 VisualStudioCode

* EV3
ev3dev
[APIリファレンス](https://ev3dev-lang.readthedocs.io/projects/python-ev3dev/en/stable/spec.html)

環境構築やソースコードの作成、実行方法は[こちら](https://qiita.com/Hiroki-Fujimoto/items/6ce278411ca151fee750)

## EV3のモデル
今回は超音波センサーとタッチセンサーが付いている。

元記事を表示

何百~何千通りも答えのあるパズルを解く

ジグソーパズルではなくて、何も描いていないピースをケースから取り出して、それをきれいにケースに戻すパズル、ありますよね。たとえば、こういうやつです。

– 脳ブロック
https://bb.tenyo.co.jp/products/index.html

うちの子らはこのブロックを夢中になって解いているのですが、私はこれを解くプログラムをPythonで書いてみました。

# まずはケースを用意します

横の長さ `x` 縦の長さ `y` のケースを用意します。まずは、10未満のランダムな整数がケースに入るようにします。

“`Python
import random
def generate(x, y):
return [[random.randrange(10) for _ in range(x)] for _ in range(y)]
“`

これを図示できるようにしましょう。

“`Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

def depict(

元記事を表示

COVID-19の感染者数をProphetで予測

#概要
GoogleがダッシュボードでCOVID-19の予測データを公開し始めた
二番煎じだが、Prophetはどう予測するかやってみた
国内感染者数データはKaggleにあったので[これ](https://www.kaggle.com/lisphilar/covid19-dataset-in-japan)を使用した

– 実施: 2020年11月24日
– パケージ:Prophet

##Prophetで感染者数予測
データセット
期間: 2020/2/6 ~ 2020/11/20
(3日ごとに最新に更新されているみたい)
Domestic: 国内
Airport: 空港検査
Returnee: 帰国者
Positive: 陰性者数
Tested: 検査者数
他にもcolumnはあるがデータ欠損が散見されたので、今回はDomesticとAirportのPositiveを使用する

“`python
import numpy as np
import pandas as pd
from fbprophet import Prophet
from fbprophet.plot im

元記事を表示

簡単! MAMPでgensim、word2vecを使う。

**注意! python、mamp、gensimがインストールされた環境の方にむけたものです。できてない方はインストールしてください。**
**あと、word2vecの学習ではなく、似ている言葉探すだけです。**

まず、phpからpythonに接続します。

phpにこれを入れてください〜!
execというコードは、phpからコマンドラインにアクセスできます。(macのターミナルと同じやつ。)

“`php


“`

これを使って、word2vecが書かれたpythonを実行します。
例えば…、test.pyのようなpythonファイルをphpから実行できます。

“`php


“`

次にword2vecで似ている言葉を探すためにデータを持ってきます。
zipダウンロードしましょう。
http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/
これを後で使います。

次にpython側ですが、新しいpython

元記事を表示

【Python】ボタンをクリックしたら設定した文字列がクリップボードに保存されるソフト

はじめに

今回が初投稿の記事になります。改善点等があれば教えてもらえると幸いです。

最初は「パスワード管理ツール」という名前にしようと思いましたが、セキュリティ面や汎用性からこのようなタイトルになってしまいました…

もし、いい名前や説明方法が思いついたら教えてもらえると嬉しいです!

今回作成したもの

以下の画像になります。ボタンの色がうるさいのと見た目が…

各ボタンを押すと設定した文字列がクリップボードに保存されます。パスワードやよく使う文字列を設定しておくと便利だと思います。

百聞は一見に如かずと言うので実行してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669525/2ddf885d-5360-d2a5-8c64-1303ddcfbe36.png)

ソースコード

以下の画像がディレクトリ構造になります。この通りファイルを配置してもらえると実行できると思います。

ディレクトリ構造.png

元記事を表示

LeetCodeに毎日挑戦してみた26. Remove Duplicates from Sorted Array (Python、Go)

## はじめに

無料英単語サイト[E-tan](https://your-e-tan.com/)を運営中の@ishishowです。

プログラマとしての能力を上げるために毎日leetcodeに取り組み、自分なりの解き方を挙げていきたいと思います。

#### Leetcodeとは

[leetcode.com](https://leetcode.com/)
ソフトウェア開発職のコーディング面接の練習といえばこれらしいです。
合計1500問以上のコーデイング問題が投稿されていて、実際の面接でも同じ問題が出されることは多いらしいとのことです。

golang入門+アルゴリズム脳の強化のためにgoとPythonで解いていこうと思います。(Pythonは弱弱だが経験あり)

#### 8問目(問題26)

#### 26. Remove Duplicates from Sorted Array

– 問題内容(日本語訳)

> 並べ替えられた配列*numsを指定して*、各要素が1*回*だけ表示され、新しい長さを返すように、重複[**をインプレース**](https://en.wik

元記事を表示

物体検出(Single Shot MultiBox Detector)画像データ用XMLファイル制作GUI

#目次
– 参考ページ
– ダウンロードリンク
– 使い方

#参考ページ
– [物体認識用データセット作成支援ツール(Faster R-CNNとかSSDとか](https://qiita.com/slowsingle/items/9006383145a650c84cb0)
– [PythonのTkinterを使ってみる](https://qiita.com/nnahito/items/ad1428a30738b3d93762#tkinter%E3%81%A7%E8%A1%A8%E7%8F%BE%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%93%E3%81%A8)
– [コピペでできる!Tkinter](https://nnahito.gitbooks.io/tkinter/content/)
– [【python】マウスドラッグで画像から範囲指定する](https://qiita.com/hisakichi95/items/47f6d37e6f425f29c8a8)
– https://shizenkarasuzon.hatenablog.com/entry/2

元記事を表示

SDFファイルに原子プロパティをスマートに埋め込む

#はじめに
分子全体ではなく、それぞれの原子のプロパティを保持するとなると、SMILES形式では不可能なため、SDFに埋め込んで保存することになる。しかしSDFは基本的に分子単位にレコードを定義したものであるため、原子のプロパティを埋め込むとなると、プロパティ名に原子のインデックスを含める等、強引な方法にならざるを得ない。

原子のプロパティをうまいこと格納する方法がないか色々しらべたところ、https://www.rdkit.org/docs/RDKit_Book.html#atom-properties-and-sdf-files に記載されているRDKitの機能を使えばスムーズにできることが分かったのでメモっておく。

#環境
– RDKit 2019.03.1

# どういうことか
RDKit 2019.03.1 以降のSDMolSupplierでは、一部の分子プロパティを原子プロパティリストとして認識し、それらを原子プロパティに変換することができるようになっている。

即ち、名前がatom.prop、atom.iprop、atom.dprop、またはatom.bpropで始

元記事を表示

CPython vs PyPy vs Pyston

# はじめに

最近ネットでPyston2に関する記事を見かけるようになりました。
[Pythonより20%高速、「Pyston 2.0」が登場](https://mag.osdn.jp/20/10/30/111400)

今まで聞いたことのないPython処理系だったのでインストールして他の処理系との速度比較を行ってみました。

以下の環境で実行しました。

“`
Windows 10 Home 19041.630
Ubuntu-20.04 on WSL
Python 3.8.5 (公式、以下CPython)
Python 3.6.9 (PyPy 7.3.1)
Python 3.8.2 (Pyston 2.0.0)
“`

Pystonは現在Ubuntuでしか利用できないためWSLを利用しました。

今回はそれぞれのインストール方法は割愛します。
それぞれのホームページなどを参考にしてインストールしてください。

# プログラム

Pythonでtimetest.pyを実行し内部からそれぞれの処理系で_timetest.pyを呼び出し、subprocessを使って結果を取得して

元記事を表示

Python制御構文(備忘録)

Pythonの制御構文周りの備忘録です。
随時追加・修正を行っていきます。

## 比較演算子
| 演算子 | 説明 |
|:-:|:-:|
| A == B | AとBが等しい |
| A != B | AとBが等しくない |
| A < B | AがBよりも小さい | | A > B | AがBよりも大きい |
| A <= B | AがB以下 | | A >= B | AがB以上 |
| A in [LIST] | [LIST]の中にAがある |
| A not in [LIST] | [LIST]の中にAがない |
| A is None | AがNoneである |
| A is not None | AがNoneでない |
| 条件A and 条件B | 条件Aと条件Bのどちらも満たす |
| 条件A or 条件B | 条件Aまたは条件Bのどちらかを満たす |

## if
“`python
num = 5
if num == 0:
print(‘数値は0’)
elif num < 0: print('数値は0より小さい') else: print(

元記事を表示

Pythonチュートリアルまとめ

#print文

“`python:print文
%s # 文字列
%r・・・
%d # 整数
%f # 固定小数点表記
%1.5f # 固定小数点表記(,5のところは小数以下桁)
%e # 指数表記
“`

“`ruby
print(“数値1=%f, 数値2=%.3f” % (1/3, 1/3))
数値1=0.333333, 数値2=0.333
“`

引数”end”に値を入れることで、末尾に何をつけるかを設定

“`ruby
print(“a”, end=”,”)
print(“b”, end=”,”)
print(“c”)
“`

#対話モード時に最後に表示した式を格納している変数

“`ruby
>>> tax = 12.5 / 100
>>> price= 100.5
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_,2)
113.06
“`
#モジュールの検索パス

1.ビルトインモジュールの中
2.sys.path変数で得られるディレクトリのリスト
3.入力スクリプトのあるディレクトリ

元記事を表示

Pythonの関数を辞書(dict)のValueに格納して、Keyに応じた関数呼出しをする方法

##1. メソッド(関数)を宣言する

“`Python3:Python3
def sample_func_1(text : str) -> str:
add_text = “追加した文字列”
return (text + add_text)

def sample_func_2(text : str) -> str:
add_text2 = “追加した文字列”
return (text + add_text2)

“`

##2. 辞書型(*dict*)オブジェクトの*Value*に、関数を括弧を付けずに記述する

“`Python3:Python3
func_dict = {
‘label_1’ : sample_func_1,
‘label_2’ : sample_func_2
}
“`

##3. 辞書型オブジェクト[*Key*ラベル名]()で、関数を呼び出して実行する

辞書(*dict*)のvalue値として、格納されているのは、関数(メソッド)オブジェクトそのものです。
そのため、関数(メソッド)を実行するには、辞書(*f

元記事を表示

〔備忘録〕四則演算に関する演算子

#Pythonで利用可能な四則演算一覧
数値型で使用可能な四則演算の一覧まとめです。数値型と言って急に出てきました。もう急に難しい感じです。要は「各データは型に分類されるよ、データ取り扱いの際は注意してね」ってことで納得しました。詳しくは下記を参照してください。最初の数行で挫折しそうですが目を通しました。脳みそをすべっていく感じがします。
[データ型とは](http://e-words.jp/w/%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B.html#:~:text=%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E3%81%A8%E3%81%AF%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0,%E8%A6%8F%E7%B4%84%E3%82%92%E5%AE%9A%E3%82%81%E3%81%9F%E3%82%82%E3%81%AE%E3%80%82″データ型とは”)

#ためしに
足し算のことです。これを記載する前にtest.py

元記事を表示

[備忘録]anaconda&VScodeでpythonのimportエラーに手こずった話

はじめに

ターミナルでpythonを実行するとモジュールのインポートでエラーが出てしまいました。今回はその備忘録です。

環境

mac:Big Sur
エディタ:VScode
Python:3.8

トラブル内容

VScodeで書いたpythonファイルをターミナルで実行するとそんなモジュールねぇよって怒られる。
でもインポートしてるのnumpyだし、ないわけないじゃん!!てことでひたすらググったら
どうやらターミナルから使用するpythonとVScodeで設定したpythonが異なるとインポートエラーが起こる模様

解決方法

ターミナルで

“`
pip show numpy
“`

と入力してLocationのところを見る。自分の場合は

“`
anaconda3/lib/python3.8/site-packages
“`
となっていてanaconda3の中のpythonを使用していた。なのにVScodeで/usr/bin/python3を指定
していたのでエラーが出てしまった。わかれば簡単なことだったな

元記事を表示

ポケモンホームAPIからランクバトルの環境の中心を可視化する

# ポケモンの環境とは
ポケモン対戦で使われる環境という言葉は,ポケットモンスター ソード・シールドのランクバトルにおいてどんなポケモン・戦略・構築が使われているかを指す言葉です.環境を知ることで,それに対するメタを考察することで現環境で勝ちやすい構築を作っていくのがポケモン対戦の醍醐味と言えます.

## 環境の中心
ガチ勢向けポケモン対戦情報共有サイトの[ポケモンソルジャーさん](http://pokesol.com/)が運営する[キャラランクメーカー](https://www.pokesol.com/tool/tier.html)ではS ~ Eランクまでの評価を個人的に設定することができ,有名な実況者や解説動画投稿者が主観的に評価を下したキャラランクが参考にされています.

ポケモンソルジャーさん自身も定期的にキャラランクを公開しています.

![スクリーンショット 2020-11-24 172842.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

自動化プログラムを作りたい!

# 始め
彡(゚)(゚)「学外からアクセスする以外の方法で、Gaussianを利用したいなぁ」

彡(゚)(゚)「せや、計算機の所定のフォルダーにファイルを放り込んだら自動でかけさせたらええんや!」

彡(゚)(゚)「それならわいでもできるやろ()」

# 利用した物
CentOSにあるcron

python3およびそのライブラリー

# 実物
“`auto.py
import os
import subprocess

path = ‘******’
A=os.listdir(path)
C=[i for i in A if ‘.com’ in i] #計算したいファイルのリストを作成
L=[i.replace(‘.log’, ‘.com’) for i in A if ‘.log’ in i] #計算の終了したファイルのリストの作成
G=[i for i in C if i not in L] #計算していないファイルを抽出
command1 = ‘ps ax |grep g09 | grep -v grep | wc -l’
command2 = ‘cd ****** | g

元記事を表示

異常検知入門と手法まとめ

異常検知について勉強したのでまとめておきます。

## 参考文献
下記文献を大いに参考にさせていただきました:
[1] [Lukas Ruff, et al.:A Unifying Review of Deep and Shallow Anomaly Detection](https://arxiv.org/abs/2009.11732)
[2] [井手,杉山:入門 機械学習による異常検知―Rによる実践ガイド](https://www.amazon.co.jp/%E5%85%A5%E9%96%80-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AB%E3%82%88%E3%82%8B%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5%E2%80%95R%E3%81%AB%E3%82%88%E3%82%8B%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E4%BA%95%E6%89%8B-%E5%89%9B/dp/4339024910/ref=sr_1_2?__mk_ja_JP=%

元記事を表示

MNISTをpythonでロードしてpngに出力する手順

# やりたいこと

機械学習用の学習/検証データのサンプルを集めている。

* MNISTをダウンロードして、中身がどうなっているか調べたい。
* そのためにpythonでubyteからpngを作成する処理を実装したい。

# 前提

* pythonでのnumpyやPILの基礎知識があること
* それらの実行環境を構築済みであること

# MNISTとは?

0から9までの「手書き数字」の画像データ。
「手書きの数字をAIで識別して分類する」などの機械学習に使う。
http://yann.lecun.com/exdb/mnist/
から無料でダウンロードできる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/6ed2cd77-636b-73b4-92da-59ffbf1b7e75.png)

# ファイル構成
* train-images-idx3-ubyte.gz : 学習用の画像データ
* train-labels-idx1-ubyte.gz : 学習用のラベルデー

元記事を表示

PythonとHerokuでLINEBOTを作ってみた

Python学習の一環でオウム返しするLINEBOTを作ってみました。
#完成イメージ
![スクリーンショット 2020-11-23 210818.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603568/99228e67-a413-d364-f741-a7c8473f9c95.png)
![Image from iOS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603568/debd46d5-d1f5-ee9f-168a-25b60eb01761.png)
#環境構成
・Python
・Heroku
・LINE Developers
・Flask
#開発手順
1.LINE Developers 登録&設定
2.Heroku 登録&設定
3.Pythonで実装
4.再度LINE Developers 設定
5.Herokuへデプロイ
#LINE Developers 登録&設定
![スクリーンショット 2020-1

元記事を表示

pythonのみで2次元配列の転置を行う方法[備忘録]

# やりたいこと
pythonの二次元配列を転置してさらにint をstrに変換する
pandas やnd.array は使わないで行いたい

“`example.txt
[
[5, 0, 1, 1],
[1, 0, 1, 5],
[0, 1, 6, 0],
[0, 4, 3, 0],
[5, 2, 0, 0],
[5, 0, 1, 1],
[0, 6, 0, 1],
[0, 1, 0, 6]
]

=>

[
[‘5’, ‘1’, ‘0’, ‘0’, ‘5’, ‘5’, ‘0’, ‘0’],
[‘0’, ‘0’, ‘1’, ‘4’, ‘2’, ‘0’, ‘6’, ‘1’],
[‘1’, ‘1’, ‘6’, ‘3’, ‘0’, ‘1’, ‘0’, ‘0’],
[‘1’, ‘5’, ‘0’, ‘0’, ‘0’, ‘1’, ‘1’, ‘6’]
]
“`

# code
“`hoge.py
cnt_ACGT_t = [list(map(str,i)) for i in zip(*cnt_ACGT)]
“`

# 転置
複数のイテラブルを受け取り、同じ場所の要素でま

元記事を表示

OTHERカテゴリの最新記事