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

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

Kaggle Titanic 0.78468

![kaggle_mar2201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/85062242-e0ba-3c90-319e-450583715f66.png)

次のページを参考にしました。
[Kaggle超初心者向け】Titanicにチャレンジしてみた](https://qiita.com/5sigma_AAA/items/0c23907da9330681147b)

“`py:titanic03.py
#! /usr/bin/python
#
# titanic03.py
#
# Mar/22/2020
# ————————————————————————–
import sys
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selectio

元記事を表示

[Python3 / pandas] DataFrameをどうしても1行ずつ処理したいときの速度改善策

# 概要

DataFrameをloopさせると非常に遅い。

参考:[[Python3 / pandas] dataframeに辞書型データを1行ずつ追加していきたいとき(速度比較)](https://qiita.com/siruku6/items/4846431198769b38bb41)

なので、本当はDataFramをloopさせたくはないのだが、どうしてもやらざるを得ない時があります。
たとえば、「直前の行の値が決まって初めて、次の行の値を決定できる」ような操作を、全ての行に対して行いたいときとか(´・ω・`)

そんな場合に試してみた方法と、その結果を記載しています。

# 参考記事

先に、参考にした記事を紹介します。

[pandas.DataFrameのforループ処理(イテレーション)](https://note.nkmk.me/python-pandas-dataframe-for-iteration/)

この記事では、以下の方法の速度比較が行われていました。
参考までに、この記事の概要だけ記載しておきます。

“`python
# 1. 一番遅い
for

元記事を表示

2時間で作るつもりのLINEBotに20時間以上かけた話

##できたもの
お題をあげると「募ってはいるが、募集はしていない」っぽい返事をしてくれるLINEBot
**実物**

[GitHub](https://github.com/soku-madori/ape.Bot)

指定した期間のツイートを削除

##黒歴史は無かったことにしたい

世の中にはいろんなツールが既にあるが、
ツイッターの仕様で最新3200件しか削除できないとか、
大量削除は有料とか。
非常に困る。

こちとら2010年から積み上げたゴミのようなつぶやきは優に10万を超える。

探せばQiitaに全ツイートを消すソースもある。
でも全部は困るんだよ。
そもそも全消しするならアカウント作りなおした方が早いだろ…

黒歴史だけ消して最近の真人間な自分は残しておきたいんだ。

そんな人向け。

##手順
1. python3.6環境の構築
2. 黒歴史が詰まったアーカイブの取得
3. アーカイブの中にあるtweet.jsを編集
4. APIキーの取得
5. ソースコードの編集
6. 実行
7. 完了

##1. python3.6環境の構築
もちろん使えるよね?
使えなかったらグーグル先生に聞いてくれ

##2. 黒歴史が詰まったアーカイブの取得
① PCでツイッターにログインして設定画面を開く(https://twitter.com/settings/account)
② 「Twitterデータ」タブを選択(パスワード求

元記事を表示

ManyToManyFieldのthroughを使ってDjangoで扱いやすいフォローモデルを作る

最近Djangoで改めてフォロー機能のためのモデルを作った際、`through`引数を使ってみたところ書きやすいモデルが作れたので記事にしてみました。

特別に高度な書き方をしているわけではありませんが、フォロー機能について検索してみたところこの通りのモデルがなかなか見当たらなかったので、近い機能を作る方の参考になれば幸いです。

## Djangoにおける多対多の書き方
Djangoでは多対多を表すモデルを作成する際、書き方が大きく分けて3つあります。

* `ManyToManyField`のみ使用する
* 基本的な方法です。この場合、中間テーブルは自動生成されます。
* 中間モデルを作成して、`ManyToManyField`を使用しない
* データ同士の繋がり以外の情報(`created_at`など)を持たせるために用います。
* 中間モデルを作成して、`ManyToManyField`の`through`引数に渡す
* 今回紹介する方法です。

## できること
“`py
# user1のフォロワー/フォロイー全部の取得
user1.followers.all(

元記事を表示

Pythonの基本箇所についての復習(FizzBuzz)

#はじめに
pythonでfizz-buzz的なアルゴリズムを作ったので投稿します。
#前提
2の倍数の時は`〜は偶数です`
3の倍数の時は`〜は3の倍数です`
6の倍数の時は`〜は6の倍数です`
それ以外は`〜はそれ以外の数です`
と表示させます。

いくつまで判定させるかは、最初に入力できるようにします。

#実行

まずは倍数を判定するための関数を作ります。

“`python
def sample(x):
if (x % 3 == 0 and x % 2 ==0):
print(x,”は6の倍数です”)
elif (x % 3 == 0):
print(x,”は3の倍数です”)
elif (x % 2 == 0):
print(x,”は偶数です”)
else:
print(x,”はそれ以外の数です”)
“`

`if`や`else`の行の最後には`:`がつく事、
elsifではなく`elif`な事、
&&ではなく`and`を使っていることに注意が必要ですが、
それ以外はrubyと大きな違いはありません。

次に、表示回数を入力

元記事を表示

pythonで即時関数(うそ)

fizzbuzz

“`python
def b(a=([print(“fizzbuzz”) if i % 15 == 0 else print(“fizz”) if i % 3 == 0 else print(“buzz”) if i % 5 == 0 else print(i) for i in range(1, 101)]})):
pass
“`

元記事を表示

Djangoのインストール

#はじめに
pythonをインストールした後にDjangoをインストールしようとして詰まったので、
その際の解決法を書いていきます。
#実行
ターミナル上で次のコマンドを入力します。

“`
pip install django
“`
これでDjangoがインストールされるはずですが、次のエラーが出ました。

“`
-bash: pip: command not found
“`

「`pip`がインストールされていないのでこのコマンドは使えない」というエラーのようです。
ならばpipをインストールすればいいと、次のコマンドを実行します。

“`
python -m pip install -U pip
“`
すると今度は次のエラーが出てきます。

“`
/usr/bin/python: No module named pip
“`
どうやら「pythonにpipなんてないよ」というエラーのようです。

`python`と`python3`が別物だったことを思い出し、次のコマンドを入力しました。

“`
python3 -m pip install -U pip

元記事を表示

TensorFlow 2.2.0-rc0(CUDA10.2+cuDNN7.6.5)のビルド手順 – Windows10

TensorFlow 2.2.0-rc0(GPU版)をWindows 10でビルドする手順です。
細かい説明は省略して要点だけを記載しているので、もう少し詳しい内容は[dev.infohub.ccのBlog](https://dev.infohub.cc/build-tensorflow-220rc0-gpu/)などを参考にしていただければと思います。

# ビルド環境の準備
ビルドには次の環境を利用します。
CUDAやcuDNN、Pythonなどは事前にPATHを通しておきます。

– CPU: AMD Ryzen Threadripper 3960X
– GPU: NVIDIA TITAN RTX
– Windows 10 Pro 64bit (Ver 1909 build 18363.720)
– CUDA 10.2
– cuDNN 7.6.5
– Visual Studio Community 2019 Ver16.4.6
– Python 3.8.2
– [MSYS2](https://www.msys2.org/)
インストールして`C:\msys64\usr\bin

元記事を表示

Python、os操作について

#(1)前提
デスクトップにディレクトリtestを作成し、ディレクトリ内にtest.pyとtest.txtを作成。
test.txtは、”テスト完了”と記述。
ディレクトリ内にディレクトリtext2を作成し、test2.txtを作成。
test2.txtは、”テスト2完了と記述。

“`
test
├test.py
├test.txt(”テスト完了”と記述)
└test2
└test2.txt(”テスト2完了”と記述)
“`

#(2)pwd
カレントディレクトリを、ターミナルでpwdを入力すると以下の通り

“`
/Users/*******/desktop/test
“`

#(3)os.getcwd()と\__ file__
os.getcwd()でカレントディレクトリの絶対パスを取得し、\__file__でカレントディレクトリ内からの相対パスを取得する。

“`
import os

print(os.getcwd())
print(__file__)
“`

実行結果は以下の通り。

“`
/Users/*******/Desktop/test
fil

元記事を表示

TensorFlow QuantumでQAOAをやってみる

# はじめに

先日発表されたTensorFlow Quantumを触ってみました。
TensorFlowにCirqを統合し、さらに量子回路のパラメーターをニューラルネットで調整する機能をKeras風味で実装した量子機械学習用ライブラリです。

公式Tutorialの構成がハードボイルドで、最初に(おそらく実機Qubitを想定した)ゲート回転角誤差の補正計算から入り、次にVQEやQAOAなどのNear term algorithmをすっ飛ばしてMNISTを実装し、結果として現時点では古典NNの方がずっと優れていると結論付けています。

Near term algorithm との親和性が気になるところなので、今回はTensorFlow QuantumでQAOAを試してみます。

また今回の記事内ではQAOAにニューラルネットワークを使うことでパフォーマンスが向上するかといった議論はしませんし、できないと思います。
ニューラルネットワーク構造やハイパーパラメータは特に追い込んでいないため、興味のある方はより良い結果が得られるか色々試すのも良いと思います。

# 題材
題材は[こちら](

元記事を表示

【Python】ARC006A(集合(set)最強説)【AtCoder】

集合`set`が最強だなと思ったのでメモ。

# [ARC006A](https://atcoder.jp/contests/arc006/tasks/arc006_1)
問題自体は簡単。
あとはいかに早くスマートに記述できるかが競プロで高パフォーマンスを出すための鍵!
※スマートに記述できた方が、バグもコード量も減ると思う!

別に`set`なんか使わなくても解けるんだけど、今回は`set`を使って解いてみる。

##集合`set`の予備知識
高校数学のベン図みたいなことができる!
`A|B`:和集合
`A&B`:積集合
`A^B`:排他的論理和(どっちか一方のみtrue ビット演算のXOR)
`A-B`:差集合(Aのみにあるもの)

具体的には・・・

“`python:test.py
A={1,2,3,5,6}
B={2,4,5,7}
print(A|B)
print(A&B)
print(A^B)
print(A-B)
“`

出力結果
スクリーンショット 2020-03-21 14.03.22.pngwikipediaのリンクをpythonで再帰的に集める

http://www.minekawada.com/wikipedia-python-wordcloud.html

目次
前回のあらすじ
アルゴリズム
ソースコード

wikipediaのページから、さらに先のページへと連続的にアクセスして、リンクを深掘りしていきたいと思います!
最終的な目標は、検索したwikipediaのページを中心にリンクを収集することで、検索ワードを中心にデータを収集し、ワードクラウドを作成すること


http://www.minekawada.com/kawaminee/wordcloud/%E3%82%A2%E3%83%B3%E3%83%91%E3%83%B3%E3%83%9E%E3%83%B3

元記事を表示

PySimpleGUIでQRコード作成GUIを作る

##はじめに

Pythonコミニティー「みんなのPython勉強会」の発表で、PySimpleGUIの紹介があった。
[PythonのスクリプトにGUIをつける方法](https://speakerdeck.com/okajun35/pythonfalsesukuriputoniguiwotukerufang-fa)
これまで、何とかGUIをTKを使って(あまりちゃんと理解せず)に作っていました。私にとっては、このライブラリーはとても分かりやすいものでした。
試しに使ってみたくなったので、例題としてQRコードを作成するGUIを作ってみました。

PySimpleGUIの説明は、こちらを参照してください。
[Tkinterを使うのであればPySimpleGUIを使ってみたらという話](https://qiita.com/dario_okazaki/items/656de21cab5c81cabe59)
[Pythonでデスクトップアプリを簡単に作る方法](https://speakerdeck.com/okajun35/pythondedesukutotupuapuriwojian-d

元記事を表示

【Python】ABC133B(右上三角形問題)【AtCoder】

プログラム初心者がつまずきそうな箇所。
重複なしの2重ループ。
俺はこれ系の問題を`右上三角形問題`と勝手に定義しているw

#[ABC133B](https://atcoder.jp/contests/abc133/tasks/abc133_b)
添字とかあると問題理解するのが大変・・・
とりあえずD次元とかいわれても想像できないので2次元でイメージする。
要は
①異なる2点間の距離の組み合わせすべて計算して
②それぞれの距離が整数かどうか
を調べればおk

##①異なる2点間の距離の組み合わせすべて計算
スクリーンショット 2020-03-21 6.20.34.png
異なる2点間の距離の組み合わせ
=**右上の三角形(黄色の部分!)**を全探索すればよい!だから`右上三角形問題`!!!
(A点とB点、A点とC

元記事を表示

感染症数理モデル事始め2 基本再生産数

# 初めに
昨今、新型コロナウイルスの流行に伴って感染症のニュースが話題になっており、基本再生産数などのワードがニュースでもたびたび出てくるようになりました。今回は、最も単純な感染症数理モデルであるSIRモデルを題材として、基本再生産数について紹介させていただきます。なお、当方は当該分野のプロではありません。そのため、誤りがあるかもしれませんが、そこはお許しください。また、誤りを垂れ流すことは当方としても望まないところではりますので、もし誤りがございましたら、ご指摘をいただけると幸いです。

# SIRモデルとは
基本的には、以前書かせていただいた記事で紹介したSEIRモデルから潜伏期Eを除いて、さらに単純にしたものです。
https://qiita.com/Student-M/items/4e3e286bf08b7320b665

SIRモデルでは、すべての人口を次の集団に区分して、その時間発展を微分方程式で表現します。
– S(Susceptible):免疫がなく感染しうるもの
– I(Infected):感染症が発症しているもの
– R(Recovered):発症から回復し、

元記事を表示

【Python】Atomで競技プログラミング用の環境構築(input()使えます!)【Mac】

Atomで競プロに必須のPythonの標準入力
`input()`
が使用できる環境構築の情報がググってもあんまりなかった…
ので記事にしてみます!
ちなみにMacです。Windowでもできるかは不明!

#python3のインストール
[公式サイト](https://www.python.org/downloads/)からダウンロード
#Atomのインストール、初期設定
以下の記事が参考になりました!
[atom・pythonで競技プログラミングのテスト環境構築](https://qiita.com/crukky/items/73c1322f5929b1ca5834#%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99)
#その他やる事
ホームディレクトリ(同階層にはダウンロードとかデスクトップとかあるよ)
に「python」というフォルダを作ってそのフォルダ内に

– input.txt
– test.py

の2ファイルを作る。
これで準備完了。

イメージはこんな感じ↓
スクリーンショット 2020-03-21</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Python</div>
<div class='tag-cloud-link'>ATOM</div>
<div class='tag-cloud-link'>ターミナル</div>
<div class='tag-cloud-link'>Python3</div>
<div class='tag-cloud-link'>競技プログラミング</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/rudorufu1981/items/5168ae41025d56fe7ecd'>元記事を表示</a></div>
<h3 id=Tensorflow-gpu 2.1.0でCUDNN_STATUS_NOT_INITIALIZEDが出る問題

# はじめに

Tensorflow2.1.0で遊ぼうと思ったらCUDNN_STATUS_NOT_INITIALIZEDのエラーが出たので、解決方法を書いていきます。
※Tensorflow2.0.0でも同様のエラーが出るかもしれません。

# 環境

– OS :: Windows10 home
– GPU :: NVIDIA RTX2070
– cuDNN :: 7.6
– CUDA :: 10.1
– Python 3.7.6 :: Anaconda custom (64-bit)
– tensorflow :: tensorflow-gpu==2.1.0

環境は以下を参考にして入れました。
https://www.tensorflow.org/install/source#tested_build_configurations

# エラー内容
“`
2020-03-21 00:29:53.137414: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened

元記事を表示

Python と SQLite3 でList と Bool を実装した(個人的メモ)

## まえがき
sqlite3 で JSON を読み込むときにほしかったので作った。忘れないようにメモする

## 実装

Pythonの型をSQLiteで使うために`sqlite3.register_adapter`を使う。
反対に、SQliteからPythonに変換するためには、`sqlite3.register_conveter` を使う。

“`python
import sqlite3

# ユーザ定義型 その1
List = list
sqlite3.register_adapter(List, lambda l: ‘;’.join([str(i) for i in l]))
sqlite3.register_converter(‘IntList’, lambda s: [str(i) for i in s.split(bytes(b’;’))])

# ユーザ定義型 その2
Bool = bool
sqlite3.register_adapter(Bool, lambda b: str(b))
sqlite3.register_converter(‘Bool’, lam

元記事を表示

OTHERカテゴリの最新記事