Python3関連のことを調べてみた2020年04月14日

Python3関連のことを調べてみた2020年04月14日

jupyter-notebookでpython3が動かない

# jupyter-notebook起動

ターミナルで

“`
jupyter notebook
“`

jupyter-notebookを開き、new→python3で新たにファイルを開いた。

“`py
print(‘python’)
“`

を入力しても反応がなく出力されない

# ターミナルエラー確認
“`
ImportError: cannot import name ‘create_prompt_application’
“`
`create_prompt_application`を検索すると下記の記事を見つけた。

[jupyterが動作しなかった時の対応メモ](https://qiita.com/aj1m0n/items/a4cd872fc60c51305acd)

調べていると上記エラー以外にも、jupyter-notebookが動かないエラーは様々あるみたいです。

# 解決法
一旦 jupyter-notebook を起動しているターミナルを control + C で閉じ、

prompt-toolkitをインストール

“`
pip inst

元記事を表示

Pythonでひらがなをローマ字に変換する(ベータ版)

## 最初に
PyKakasiという日本語→ローマ字変換モジュールがあるので、忙しい方はそちらの導入をオススメします。

– 自分で書いてみたい!
– モジュール使うほどのものではない
– 後々自分でカスタムしたい

という方向けの記事です。

## 開発環境
– Python 3.7.3

## コード

“`python:chars_dict.py
hiragana = {

# vowel
‘あ’: ‘a’,
‘い’: ‘i’,
‘う’: ‘u’,
‘え’: ‘e’,
‘お’: ‘o’,

# consonant K
‘か’: ‘ka’,
‘き’: ‘ki’,
‘く’: ‘ku’,
‘け’: ‘ke’,
‘こ’: ‘ko’,

# consonant K”
‘が’: ‘ga’,
‘ぎ’: ‘gi’,
‘ぐ’: ‘gu’,
‘げ’: ‘ge’,
‘ご’: ‘go’,

}

“`

“`python:main

元記事を表示

【pythonクラス変数】qiitaの記事でデマを流していた件について

# はじめに

先日、自分のために書いたメモをちょっと整形して[qiitaの記事](https://qiita.com/basashi/items/69fee6df0f23f140e91c)にして投稿したところ、[@shiracamus](https://qiita.com/shiracamus)さんからのコメントで、ちょこちょこ勘違いをしているしていることが判明したため、反省を含め、インスタンスやクラス周りの勘違いしていたところをまとめました。

**勘違い集なので、正しいのは題名の否定です(笑)**

間違いを指摘してくださった[@shiracamus](https://qiita.com/shiracamus)さん、ありがとうございました。

# 第一の勘違い: クラスはオブジェクトじゃない

Javaの入門書読んだときの「型がクラスで、その型から作られたものがインスタンス」という記憶につられて、「インスタンスはクラスから作られたオブジェクト!!、クラスはオブジェクトじゃない!!」という思い込みをしていたのでありました。

“`python
class hoge:
pa

元記事を表示

Atcoder ABC161 A-EをPython3で

#A ABC Swap
Swapを2回行った結果は$(a,b,c) => (c,a,b)$なので、それを出力する。

“`abc161a.py
a,b,c=map(int,input().split())

print(c,a,b)
“`

#B Popular Vote
問題文の通りに実装するだけ・・と思ったら以下のコードでWAが出た。

“`abc161b_WA.py
n,m=map(int,input().split())

l=list(map(int,input().split()))
s=sum(l)
ans=0
t=s/(4*m)
for i in l:
if i>t:
ans+=1
if ans>=m: print(“Yes”)
else: print(“No”)
“`

~~判定条件をi>tからi>=math.ceil(t)に変えたら通った。math.ceil(t)>t>math.floor(t)のはずなので結果は変わりないはずなんだけど・・未だに謎。~~
(4/13/2020追記:コメントいただいた通り、t=iのケースが抜けてました。

元記事を表示

機械学習入門したけどやめたのでここにメモる

#概要
pythonを用いた機械学習を入りだけ学ぶ機会があったので、かじってはみたが、コロナの影響で通っていたスクールが中止に。。
大雑把でランダムではあるが、学んだことを記録として残させてもらいます。

##機械学習とは
主にコンピュータなどに学習(ルールを学ばせる)させ、学習したことに基づいて処理(判別や予測)をさせる事。

##scikit-learn
pythonの機械学習ライブラリ。機械学習のアルゴリズムが多く実装されている。
初学者が学ぶには最適なライブラリ。

##Numpy
pythonの計算パッケージ。高等数学の計算を容易に行うことができる。

構文例

“`

import numpys as np
numpy.zeros(dtype=None) #メモリの割り当て

“`

##グラフ化

import matplotlib.pyplotモジュール
機械学習などにおいて、グラフを描写するためのモジュール

構文例

“`
import matplotlib.pyplot

matplotlib.pyplot.scatter(データ1,データ2, s=サ

元記事を表示

Atcoder ABC162 A-Dをpython3で

A-Dまでの備忘録

#A Lucky7
for文使ったけどif inでもよかった。

“`abc162a.py
a=list(input())
for i in a:
if i==’7′:
print(“Yes”)
exit()
print(“No”)
“`
if inの場合

“`abc162a_2.py
a=input()
if ‘7’ in a:
print(“Yes”)
else:
print(“No”)
“`

#B Fizzbuzz Sum
Fizzbuzzの出力は無視して、3でも5でも割り切れない数を足していくだけ

“`abc162b.py
n=int(input())
a=0
for i in range(n+1):
if i%3!=0 and i%5!=0:
a+=i
print(a)
“`
#C Sum of gcd of Tuples (Easy)
今回からpython3のバージョンが上がったのでmath.gcdが使えるようになりました。
$gcd(a,b,c)=gcd

元記事を表示

VQEをBlueqatで実装してみた

NISQ時代はVQEがくるんじゃない?(ホントにくるのかな・・・?)って事で、簡単な問題をBlueqatで実装してみた。なお今回はプログラム動作確認という意味で、トリビアルな組み合わせ最適化問題を解いてみる。
## 今回解いた問題
以下のハミルトニアン$H$が最小となる$q(0)$、$q(1)$の組み合わせを解く。
$$
H = 1 – q(0) – q(1)
$$
なお、$q(0)$、$q(1)$は0もしくは1のどちらかの値となる。この問題設定では、$q(0)=q(1)=1$のときハミルトニアン$H=-1$で最小の値をとる。

## 補足情報
ちなみに、すべての$q(0), q(1)$の組み合わせについてハミルトニアンは以下の値をとる。

– $q(0)=0,q(1)=0 \rightarrow H = 1$
– $q(0)=0,q(1)=1 \rightarrow H = 0$
– $q(0)=1,q(1)=0 \rightarrow H = 0$
– **$q(0)=1,q(1)=1 \rightarrow H = -1$**

## ソースコード
“`python

元記事を表示

気ままに更新するABCのPython解答例

競プロ初心者のデータサイエンティストが気ままにAtcoderのコンテスト解答例をアップするだけの記事。

# ABC162 D
https://atcoder.jp/contests/abc162/tasks/abc162_d

## TLEとなる素朴な実装
3重ループで書くとこんな感じ。

“`python
import random
n = 300
s = ”.join([random.choice(‘RGB’) for i in range(n)])

# triple loop (O(n^3))
count = 0
for i in range(n):
l1 = s[i]
for j in range(i+1, n):
if s[j] == l1: # 条件1でNG
continue
else:
l2 = s[j]
for k in range(j+1, n):
if s[k] == l1 or s[k] == l2 or (j – i)

元記事を表示

あとで後悔しないPythonのディレクトリ構成をつくってみる

## はじめに

Pythonでプログラミングをはじめて少し経ち、ディレクトリ構成について理解したことがあったのでまとめておきます。
最初はまったくわからず、かなりググりながら進めていたので、初心者でもわかるようにステップだてて執筆してみました。

なお以下はPythonでの開発を半年ぐらいやったエンジニアによるメモです。
**よりベターな方法のご教示やご提案、初心者の方からの質問など、ぜひたくさんいただければ嬉しく思います。**

Pythonを触った当初は、とりあえず hoge.py にたくさんメソッドを書き、そのうちファイルが複数になり、ディレクトリが増えていきました。
しかしこのようにすると自作プログラムの中の依存関係の解決に失敗したり、どんどん訳の分からない構成になってしまい、あとで正すことも難しく感じました。

そのためよっぽど緊急なプログラミングでないかぎりは、最初に**「ライブラリ化しやすいようにディレクトリ、ファイルを準備する」**ことが重要かと思っています。
そのテンプレートを、本記事でつくってみます。

## まずはsetup.pyから書いてみる

まずプロジェ

元記事を表示

言語処理100本ノック 2020 第7章: 単語ベクトル

先日,[言語処理100本ノック2020](https://nlp100.github.io/ja/)が公開されました.私自身,自然言語処理を初めてから1年しか経っておらず,細かいことはよくわかっていませんが,技術力向上のために全ての問題を解いて公開していこうと思います.

すべてjupyter notebook上で実行するものとし,問題文の制約は都合よく破っていいものとします.
ソースコードはgithubにもあります.[あります](https://github.com/nymwa/nlp100/blob/master/chapter07.ipynb).

6章は[こちら](https://qiita.com/nymwa/items/774ca6c542c1eaff160d).

環境はPython3.8.2とUbuntu18.04です.

#第7章: 単語ベクトル
> 単語の意味を実ベクトルで表現する単語ベクトル(単語埋め込み)に関して,以下の処理を行うプログラムを作成せよ.

必要なデータセットは[ここ](https://nlp100.github.io/ja/ch07.html)か

元記事を表示

言語処理100本ノック 2020 第8章: ニューラルネット

先日,[言語処理100本ノック2020](https://nlp100.github.io/ja/)が公開されました.私自身,自然言語処理を初めてから1年しか経っておらず,細かいことはよくわかっていませんが,技術力向上のために全ての問題を解いて公開していこうと思います.

すべてjupyter notebook上で実行するものとし,問題文の制約は都合よく破っていいものとします.
ソースコードはgithubにもあります.[あります](https://github.com/nymwa/nlp100/blob/master/chapter08.ipynb).

7章は[こちら](https://qiita.com/nymwa/items/9963968568b9dbfc2e78).

環境はPython3.8.2とUbuntu18.04です.

# 第8章: ニューラルネット
> 第6章で取り組んだニュース記事のカテゴリ分類を題材として,ニューラルネットワークでカテゴリ分類モデルを実装する.なお,この章ではPyTorch, TensorFlow, Chainerなどの機械学習プラットフォーム

元記事を表示

PythonのEnumを関数と紐付け、Callableにする

いくつかの選択肢からアルゴリズムを選ばせるような時、列挙型の各値に関数を紐づけたいことがある。

Javaなら列挙型の各値にメソッドを設定できるのだが、Pythonではできない。Enum自体をCallableにする方向性で、なんとかキレイな書き方がないか考えてみる。

## 値はどうでもいい場合

PythonのEnumは値を自由に設定できる。だから値そのものを関数にしてしまえばいい。

だがEnumを継承したクラスの中で定義された関数はメソッドと判断され、列挙される値に含まれなくなってしまう。

“`python
class Dame(Enum):
# 値を定義したことにならず、メソッドを定義したことになる
A = lambda: print(“A”)

list(Dame)
# 空リスト
“`

そこで、[このstackoverflowのアイデア](https://stackoverflow.com/questions/31907060/python-3-enums-with-function-values)を借りて、関数が含まれるタプルを値に使うことにする。

元記事を表示

【AtCoder】Pythonで緑ランクになるまでにやったこと

qiita.png

つい最近AtCoderで緑ランクになった者です。

今回は、個人的にどんなことをやってきたか、どんなことに注意しているかをまとめました。

# 緑ランクになるには

緑ランクになるには次のようなことが必要だと考えています。

– C問題までを15分以内に解く(**3完15分**)
– D問題を制限時間以内に解く(**4完100分**)

極論、D問題が解けなくても緑ランクに行くことは可能だと思ってます(時間はかかりそうですが)。

参考までに、僕が最近バーチャル参加したコンテストの結果を以下の表にまとめておきます。

| コンテスト名 | 結果 | レーティング※ |
|:—————-:|:———:|:————-

元記事を表示

【self,__init__(),super】Pythonのクラスの疑問解決!

# はじめに

Pythonのクラスを学んだときに持ちそうな様々な疑問とそれに対する回答をまとめてみました。間違い等ございましたら、コメントください。

# Q1: `self`とは何ぞや

Pythonではインスタンスのメソッドを呼び出したとき、そのインスタンス自身が第一引数に渡されることになっています。これを`self`という変数で受け取っているというだけのことなのです。`self`はただの名前だったのです。ちゃんちゃん

「ちょまてよ、メソッドを使うときわざわざ第一引数にインスタンスなんて渡したことないぞ」という疑問を持つ人もいるでしょう。`instance.function()`のような場合、第1引数にインスタンスが渡されることになっています。Pythonで決められているのは第1引数にインスタンスが入るということだけなので、別に`self`以外の名前を使ってもいいですよ。Pythonでは慣例的に`self`を使うようにしているようです。また、`class.function()`とした場合、引数は自動的に渡されません。この辺について[拙著](https://qiita.com/b

元記事を表示

Python3で自分を再起動する

# 概要
うまくいって嬉しかったのでメモです…

# 背景
pythonコード内で自分を新しい引数でもって再起動させたい場面が発生しました。
一旦、別のshellやPythonに引き渡す事も考えたのですが、コードが混乱しそうだったので…
※Linuxでしか動かないようです。

下記の記事を参考にさせていただきました。
https://stackoverflow.com/questions/31447442/difference-between-os-execl-and-os-execv-in-python

# 結論

“`python

import os
import time
import sys

gets=int(sys.argv[1])
cnt=0
while cnt<5: print(cnt+gets) cnt+=1 time.sleep(1) os.execl(sys.executable, 'python', __file__,str(cnt+gets)) ``` 2つ目の引数がネーミングであることが重要。 ``` 1つ目の引数→pyth

元記事を表示

ChemTHEATREでPython学習01

# Part1 基本統計量とその可視化

## 全体の流れ

Part1では,ChemTHEATRE(https://chem-theatre.com/)に収録されているスナメリのデータを利用して,データの基本的な特性を見る基本統計量を分析し,箱ひげ図を利用して可視化する。
![img01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261241/0295413b-7670-fe69-235a-714709425816.png)

## Chap.1 ライブラリの読み込み

“`python
%matplotlib inline
import numpy as np # as np, as pdなどはプログラムで呼び出すときの省略名を設定している
import pandas as pd # いちいちnumpyなどと都度入力するのがめんどうなので慣習としてこの様に記載される
import matplotlib.pyplot as plt
import seaborn as sns
“`

元記事を表示

栃木県隣県の新型コロナウイルス感染症患者の発生状況の表を作成

Web で閲覧できる次の表を作成します。
>[栃木県隣県の新型コロナウイルス感染症患者の発生状況](https://ekzemplaro.org/corona/prefecture/)
![prefecture_apr13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/d46776e5-4542-38a2-4e39-f9a9bec52fdf.png)

データのソースは SIGNATE のプロジェクトです。
>[COVID-19チャレンジ(フェーズ1)](https://signate.jp/competitions/260)

data.csv の取得

“`bash
wget –no-check-certificate –output-document=data.csv ‘https://docs.google.com/spreadsheets/d/10MFfRQTblbOpuvOs_yjIYgntpMGBg592dL8veXoPpp4/export?gid=0&format=c

元記事を表示

AtCoder_ABC

# AtCoderのコンテストのときの回答検証
ABCのコンテストしか現状参加していない(現状参加回数3回で灰色コーダー)
### 162_A
input()が使えるかどうかの問題!!n.count(‘7’)を忘れていたから愚直に分割した。

“` python:ABC_162_A.py
n = input()
if n[0] == ‘7’ or n[1] == ‘7’ or n[2] == ‘7’:
print(‘Yes’)
else:
print(‘No’)
“`
“` python:ABC_162_A.py
n = input()
n = n.count(‘7’)
if n >= 1:
print(‘Yes’)
else:
print(‘No’)
“`
### 162_B
FizzとBuzzとFizzBuzzの和を求め,Nまでの総和を求め最後に引く

“` python:ABC_162_B.py
n = int(input())
s3 = 0
s5 = 0
s15 = 0
count = 0
for i in range(int(n

元記事を表示

言語処理100本ノック 2020 第6章: 機械学習

先日,[言語処理100本ノック2020](https://nlp100.github.io/ja/)が公開されました.私自身,自然言語処理を初めてから1年しか経っておらず,細かいことはよくわかっていませんが,技術力向上のために全ての問題を解いて公開していこうと思います.

すべてjupyter notebook上で実行するものとし,問題文の制約は都合よく破っていいものとします.
ソースコードはgithubにもあります.[あります](https://github.com/nymwa/nlp100/blob/master/chapter06.ipynb).

5章は[こちら](https://qiita.com/nymwa/items/8e054e524b70331c16db).

環境はPython3.8.2とUbuntu18.04です.

# 第6章: 機械学習
> 本章では,Fabio Gasparetti氏が公開しているNews Aggregator Data Setを用い,ニュース記事の見出しを「ビジネス」「科学技術」「エンターテイメント」「健康」のカテゴリに分類するタスク(カテ

元記事を表示

Django管理画面のカスタマイズ はじめの一歩

Djangoの管理画面のカスタマイズを実施します。
デフォルトのDjangoの管理画面はあまりイケてる感じではないですが、デザインを自分好みに変えられます。
そのための第一歩として、**どのファイルをいじればよいのか?**を整理します。

# Djangoのインストールおよびプロジェクトの作成
この記事読んでる人でDjangoをインストールしてない人は少ないと思いますが、
もしいらっしゃる場合は[こちらの記事](https://qiita.com/Shirokuma_0607/items/db30765b9aa9374cd676)を参照してください。

# adminアプリケーションのtemplateの場所を確認
環境をどうやって作成しているかで十人十色ですが、Pythonの実行環境からライブラリにインストール場所を探してください。
`django.contrib.admin.templates`というディレクトリがあるはずです。
この中に、adminアプリケーションのtemplateが格納されています。
**※このファイルを直接いじるようなこと