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

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

vscodeでpythonが認識されない

# だめ
はじめからはいっているのはどうもないんですが,新しく入れるとだめみたい.

# 症状
1. python.orgから3.8.3 32-bitをinstall
2. vscodeをinstall
3. python extensionをinstall
4. powershellでpythonを実行
5. pathを選択

しても動きません.pathがうまく書き込まれていない.

# 再現法
1. vscodeをclean unsintall
2. python3.2.3, python laucherをコントロールパネルからuninstall

そのあと,症状どおりの操作をすると再現します.

# 対処法はmodify
python.installを再度ダウンロードして保存.起動したのちmodifyを選ぶ
![cap1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151211/1de44201-3cbb-f5da-de7b-3f9fa2d13db4.png)
![cap2.png](https

元記事を表示

enzyme.datからEC numberとUniprot entryの対応表を作る

## enzyme.datとは
[ENZYME](https://enzyme.expasy.org/)という酵素の命名に関する情報のデータベースファイルのこと
ファイルには

“`
ID Identification (Begins each entry; 1 per entry)
DE Description (official name) (>=1 per entry)
AN Alternate name(s) (>=0 per entry)
CA Catalytic activity (>=1 per entry)
CF Cofactor(s) (>=0 per entry)
CC Comments (>=0 per entry)
PR Cross-references to PROSITE

元記事を表示

numpyのaxis(軸)を理解する

## axisとは
多次元の配列を扱うnumpyではaxis(軸)をきちんと理解しておくことが大切です。

例えば、配列の合計値を求める`numpy.sum()`を考えてみましょう。

単純なスカラーや1次元の配列ならば、軸を考えるまでもなく、全ての値を合計すればよいのですが、多次元配列の場合、どの軸に沿って合計すればいいかを意識する必要があります。

`numpy.sum(a, axis)`
numpyのsum()は第1引数aに配列を指定し、第2引数にはaxis(軸)を指定します。
このaxisに沿って、要素を足し合わせていくわけですね。

## 2次元配列のaxis
まずはわかりやすい2次元の配列を例にします。
2次元配列において、**行方向はaxis=0、列方向はaxis=1**となります。

![numpy_axis_2d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634673/0b19b816-1970-d322-eea3-28b83654204d.png)

“`python
Z =

元記事を表示

【Python/Tkinter】PandasのDataFrameを検索→表示する簡易な検索フォームを作成する

## はじめに
DataFrameを利用する際,それを検索→表示できたらなと思う場面があります。特にGUIアプリを作成する際にはあると便利です。下記にPandasのDataFrameを検索し,表示する検索フォームをTkinterを利用して作ってみたいと思います。

## サンプル
![search.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293043/7c1f2481-9bf6-9c17-1f18-dd64072d14a0.gif)

##コード全文

“`py
import pandas as pd
import tkinter as tk
import tkinter.ttk as ttk

class SearchWindow(tk.Frame):
def __init__(self, master=None, parent=None):
super().__init__(master)
self.master = master
s

元記事を表示

Pythonで文字数カウンターを作ってみた

# はじめに
皆さんはMicrosoftのWordをお使いになるでしょうか?私も大学のレポートを書く際に、word形式で提出となるとWordを起動させて、レポートを書きます。最近ではGoogle Documentを用いてレポートを書くことも増えましたが…けれど、世の中Wordを開くほどの文章を書くわけでもない…ブラウザ立ち上げてGoogle Documentを開くまでもない…というメモ程度のことを記すだけのこともあるのではないでしょうか?(私だけ?)
そんな時、ああ、文字数カウントしたい…と思うこともしばしばなのではないでしょうか?(わたry)
そんなわけで、Pythonで文字数カウンター作ってみました。忙しい方向けに、ソースコードは[こちら。](#4-ソースコード)

# 環境
Mac OS Catalina
Python 3.7.6
PySimpleGUI 4.18.2

## 0. 目次
1. [ライブラリ](#1-ライブラリ)
2. [必要な機能](#2-必要な機能)
3. [実装](#3-実装)
4. [ソースコード](#4-ソースコード)
5. [まとめ](

元記事を表示

rumpsでMacメニューバー常駐の天気アプリを作る!

# メニューバー常駐のアプリを作りたい !
メニューバーにあるアプリを作りたいとふと思い立ちました。
まず、メニューバーとはここ↓
menubar.png
どんな事ができるのか勉強がてら、お天気アプリを作ることにします。

# rumps とは
Mac のメニューバーを開発するために、多くの人が Objective-C や Swift を利用すると思います。(多分)
Python で Mac のメニューバーを簡単に作るためのライブラリとして、 rumps があります。
https://github.com/jaredks/rumps
rumps が使われているアプリが紹介されているので、参考にさせてもらいました。

# 準備
rumps を使うために、必要なものをインストールしていきます。 python3 からいき

元記事を表示

連想配列を説明する

#じゃあまずC#で書く。

“`ex.cs
using System;
using System.Collections.Generic;
public class Ex{
public static void Main(){
var jcpmusicdotcom = new Dictionary();
jcpmusicdotcom[“東方ロストワード”] = “ロストワードクロニカル”;
jcpmusicdotcom[“俺はボーマンダ”] = “レプリカの恋”;
jcpmusicdotcom[“ほのぼの神社”] = “SHAMAN QUEEN”;
foreach(var music in jcpmusicdotcom){
Console.WriteLine($”{music.Value}は、{music.Key}を連想する音楽です。”);
}
}
}
“`

#次にPythonで書いてみる。

“`ex.py
cl

元記事を表示

秒速で行う画像クローリングまとめ

## 概要

大規模なデータセットといえばKaggleなどだと思いますが、お目当ての画像がない時もありますよね。

この記事で書かれたコードを実行することで、
画像のクローリングを、

– Google
– Yahoo
– Bing
– Baidu
– Flickr

で簡単に手早く行えます。
簡単にキータの記事、及びicrawlerのexampleを漁って試してみたもののまとめになります。

## Google編

https://qiita.com/Yuki-Takatsu/items/3f30727d5b21a83ea4ed
ここを参考に(コピペ)しました。

“`scrape_google.py
import requests
import random
import shutil
import bs4
import ssl
import os.path
ssl._create_default_https_context = ssl._create_unverified_context

def image(keyword):
Res = requests.get

元記事を表示

アズールレーンの周回操作をPythonで自動化したい その1

注:アプリをandroidエミュレータ(Nox)上で動作させます。利用は自己責任でお願いします。

Noxのインストール、使用方法については[NoxPlayer公式サイト](https://jp.bignox.com/)を参照

## 記事を書いた経緯

スマホゲーム「アズールレーン」はオート戦闘機能はあるものの、
周回自体はかなりめんどくさい[^1]。
[^1]: 戦闘以外(出撃→接敵→戦闘→勝利→接敵→…)は自動化できない。マップ上に敵が出現する位置もランダムなので、マクロで一括自動化というのも不可能。

[アズールレーン赤城加賀自働周回マシーン](https://kobineko.hatenablog.com/entry/2017/11/13/223825)という記事を見つけたが自分はpythonしか扱えないので途方に暮れる。
どーにかならんもんかなと調べてたら、pythonでも画像を使った自動操作が行えることを知る。
[PyAutoGuiで繰り返し作業をPythonにやらせよう](https://qiita.com/hirohiro77/items/78e26a59c

元記事を表示

ほぼYoutubeだけで合格する、統計検定2級

統計検定2級受験に向けていろいろ勉強しましたが、これでいいんじゃないかって勉強方法をお伝えします。

必要なものはPCと本1冊です。

## 学習方法
1. まず、公式問題集を買いましょう。
2. 公式問題集で出題範囲を確認し、出題される分野を確認しましょう。
3. 該当の分野について、[統計WEB](https://bellcurve.jp/statistics/course/#step1)でざっくりと理解しましょう。
4. 統計WEBで理解が浅い、もしくは理解できない分野については[こちら](https://www.youtube.com/playlist?list=PLDJfzGjtVLHmx7qMP410-9gx0weC9d90X)のチャンネルがおすすめです。イケメン講師がわかりやすく教えてくれます! ※7でYoutubeチャンネルもこのタイミングで見てもOKです。
5. それでは公式問題集を解きましょう。
6. 公式問題集の解説だけでは理解できない場合、上記の統計WEBに解説がありますので、併せて確認しましょう(ただし、誤植が多いのであまりにおかしい箇所は気にしないように)。

元記事を表示

API Gateway・Lambda・DynamoDBで簡単にREST APIを作る

大学時代の友人3人とWEBサービス開発記録シリーズ第4弾。

今回作ろうとしているWEBサービスの構成([こちらの記事](https://qiita.com/charatori/items/d4129cbdc8de143dcf17)で紹介しています)における
バックエンド側(API Gateway+Lambda+DynamoDB)のAPI構築方法についてまとめたいと思います。

## 前提
* API Gateway
* エンドポイントタイプ:リージョン
* APIキー:必須
* Lambda
* ランタイム:Python 3.8

## この記事のスコープ
### 構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241764/dc3a0b3b-3740-dace-f64e-48b988392793.png)

本記事では、下記2点の説明をしたいと思います。

1. 上記構成図のAPI Gateway、Lambda、DynamoDB部分について現状の設定内容

元記事を表示

astropy: fits file

# astropy (天文系 Python package) でfitsファイルを open / save / add するやり方。

# Data input/output with astropy

“`python

#from astrolibpy.utils.idlsave import idlsave

from astropy import table
from astropy.table import Table
from astropy.table import Column
from astropy.io import fits

#####################
# method (1)
#####################

# read
table1 = Table.read(‘table1_old.fits’)

# save
data_ = [ table1[‘source_id’], table1[‘radial_velocity’] ]
names_ = (‘source_id’, ‘radial_velocity’)

元記事を表示

Pythonでトランプゲームのブラックジャックを実装してみた

# はじめに

前回は[こちら](https://qiita.com/p-t-a-p-1/items/ef34310e5a58fce8d217)にもある通りトランプの山札機能を作成しました。

前回の山札機能を利用して、今回はブラックジャックのメインゲーム機能を実装してみました。
実際にプログラムを書き、既存の要件からどう言った部分を自分だったら拡張するか?とか考えたりして色々勉強になったと思います!

# 機能要件

基本的なルール・要件はこちらの[プログラミング入門者からの卒業試験は『ブラックジャック』を開発すべし](https://qiita.com/hirossyi73/items/cf8648c31898216312e5)にあるものをそのまま参考にさせていただきました!

> – 初期カードは52枚。引く際にカードの重複は無いようにする
> – プレイヤーとディーラーの2人対戦。プレイヤーは実行者、ディーラーは自動的に実行
> – 実行開始時、プレイヤーとディーラーはそれぞれ、カードを2枚引く。引いたカードは画面に表示する。ただし、**ディーラーの2枚目のカードは分からないよ

元記事を表示

ECRスキャンをCDKから作成したらスキャンの裏側も見れたよ

# 初めに
ECRのスキャン機能使ったこと無かったので、CDKで作りました

# 作り方
下記のように、Repositoryの引数にimage_scan_on_pushを追加するだけで自動スキャン機能が使えます
CDK便利ー

“`python
from aws_cdk import (
aws_ecr as ecr,
core,
)

repository = ecr.Repository(self, “Repo”,
image_scan_on_push=True
)
“`

上記を実行すると、ECRとECRImageScanOnPushが出来ました

“`bash
$ cdk diff repo

Resources
[+] AWS::ECR::Repository Repo Repo02AC86CF
[+] Custom::ECRImageScanOnPush Repo/ImageScanOnPush/Resource RepoImageScanOnPush94CFD98F
[+] AWS::IAM::Role AWS679f53fac00

元記事を表示

A comment on Boruta algorithm

# 前略
[Boruta](https://github.com/scikit-learn-contrib/boruta_py)は特徴量重要度を使用した特徴量選択の手法の一つです。

下記サイトの解説を参考に勉強させていただきました。とてもわかり易い解説で、実験もあってとても参考になります。

– [ランダムフォレストと検定を用いた特徴量選択手法 Boruta](https://aotamasaki.hatenablog.com/entry/2019/01/05/195813)

## コメント
Borutaのアルゴリズムでは、ある特徴量が予測に有効かどうか判断するために帰無仮説「
この特徴量の重要度は、判別(回帰)に寄与しない特徴量の重要度と同じである。」を立て、検定を行います。帰無仮説が正しい場合、ある特徴量の重要度と判別(回帰)に寄与しない特徴量の収容度の大小はランダムになるはずで、ある特徴量の重要度が大きくなる確率は$p=0.5$の二項分布に従うはずです。

ここで気になったのは、Shadow Featureは一つではなく、元の特徴量次元と同じ数だけあります。そして、大小比較は

元記事を表示

[Python]02章-04 Pythonプログラムの基礎(コメントについて)

#[Python]02章-04 コメントについて
この節では、コメントについて説明していきます。
ある程度章が進むと、プログラムも長くなっていき、後ほど見返すと何を書いていたかわからなくなることが良くあります。

不思議なことに、一度自分で書いたプログラムを次の日に見返すと、何を書いていたか全くわからなくなることが良くあります。

また、自身が部署の異動等で後任の方にプログラムを渡す際に、後任のがプログラムを読んでもさっぱりわからなくなってしまい、**プログラムのメンテナンス時に困る**ことになります。

そこで用いられるのが**コメント**です。

このコメントでは、プログラム内にコメントを記載し、説明文を書くことができます。コメントには2種類ありますので、それぞれ見ていきます。

今回も、プログラムを書いて実行していく方法で進めていきたいと思います。

##「\#」を使ったコメントの記述について
まず、前回書いたプログラム02-03-05.pyをコピーして同じchap02

【Python】【SQLite3】PythonでSQLiteを操作する(基本編)

PythonでSQLiteを操作するときのメモ
備忘録です。
#ソースコードと説明
“`python:sample.py
import sqlite3
from contextlib import closing

dbname = “sample.db”

with closing(sqlite3.connect(dbname)) as conn:
c = conn.cursor()
query = ”’drop table if exists User”’
c.execute(query)
conn.commit()

with closing(sqlite3.connect(dbname)) as conn:
c = conn.cursor()
query = ”’create table if not exists
User(id integer primary key, name varchar(32))”’
c.execute(query)
conn.commit()

SAPIで未サポートの言語を喋らせる

SAPI で発音を指定して未サポートの言語を喋らせます。そのための音素の扱いなどを説明します。

発音を指定する方法は以下の記事を参照してください。

* [SAPIで発音を指定する](https://qiita.com/7shi/items/51017b4b268f66e11c42)

言語に依存しない発音の指定方法として IPA と UPS が使用できます。今回は ASCII 文字だけで入力できる UPS を使用します。

# 音素

綴りと発音に例外がなく説明に都合が良いため、人工言語のエスペラントを例に取ります。

資料を参照しながら、音素と UPS の対応をまとめます。

* [エスペラントアルファベット – Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B9%E3%83%9A%E3%83%A9%E3%83%B3%E3%83%88%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%99%E3%83%83%E3%83%88)
* 子音: [Consonants (Microso

ローカルでのスクレイピング作業をGCPに持っていく作戦

#やりたいこと
現状ローカルPCにて
①PythonにてSeleniumを使用してWebサイトにスクレイピング
②スクレイピング結果をログファイルに蓄積
③CRONで定時実行
している

![クリックツールGCP移行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/7012a758-2c63-8e3c-fa46-c8bd5dcb0106.png)
これをクラウドであるGCPの環境に構築したい
![クリックツールGCP移行 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/68d483bc-1eb7-5aea-b3b7-aac4f1bda041.png)
おそらく
Pythonの実行環境は**Google Cloud Functions(GCF)**
ログファイルの蓄積には**Google Cloud Storage**もしくは**Google Drive**
定時実行は**Google Cl

CCC: coding crash course (2)

内部向け資料。

今日の内容:

– (1) list に慣れる, append()

– (2) 関数 int(), float()

– (3) 関数range(), list(range())

– (4) for 文

– (5) 復習問題


# (1) list に慣れる, append()

– `append(A)` は、リスト末尾に要素Aを加える。

“`python
# 復習
# 何が出力されるか?
a = [7, 8, ‘taro’, ‘jack’]

print(a)

print(a[2])

“`

“`python
# 何が出力されるか?
a = [7, 8, ‘taro’, ‘jack’]

a.append(’10’)

print(a)

a.append(10)

print(a)

# 10 と ’10’ は別のもの。

# [7, 8, ‘taro’, ‘jack’, ’10’, 10]
“`

– リストの位置指定の裏技: [-1] = マイナス1番目という位置は末尾。

“`python
# 何が出力されるか?