- 1. Cloud9にPython+OpenCVの環境を構築する
- 2. これを見ればPythonの内包表記を完全に理解できる
- 3. mod_wsgi+flask+flask-httpauthのBasic認証でうまくログインできないとき
- 4. 猿でも分かるPython入門 (その1)
- 5. AtCoder Judge System Update Test Contest 202004 参戦記
- 6. Google Code Jamの予選に参加しました
- 7. コロナ患者数が都が確保してる病床数超えたから自宅療養する人が増えるだろうから一人で不安だしなんかあった時の為に助けを求めるボット作った。【説明編】
- 8. pygame で音楽再生した時、音程が変わってしまう。
- 9. Atomでatom-beautifyパッケージを使ったコード整形の実行時に出るエラーを回避したい
- 10. docker-composeでFastAPIの環境を構築する
- 11. pipでmojimojiがインストールできない Mac Catalina 10.15.4
- 12. 機械学習のお勉強〜Numpy編〜
- 13. AtCoder Beginner Contest 161をPythonで実装
- 14. AtCoder Beginner Contest 161 参戦記
- 15. e-stat APIで政府統計データ(都道府県&性&年代別)取得(json) -> 値とカテゴリマスタからDataFrame生成
- 16. SQLAlchemyの落とし穴
- 17. Python3 データをプロットすると軸の範囲が変化してしまいます
- 18. 【随時更新】自然言語処理で使う Python スニペット集 〜 青空文庫データを例に 〜
- 19. 【エラー対処】TypeError: ‘list’ object is not callable
- 20. 【機械学習図鑑】巻末のPython演習をデータを確認しながら実施したときのメモ
Cloud9にPython+OpenCVの環境を構築する
AWS Cloud9にPython+OpenCVの開発環境を作りたい場合の環境構築手順です。
特に、各種インストールの部分が面倒だったのでまとめておきます。(ベストな方法かはわかりません、すみません。)## EC2の作成
私は`EC2 instance type:t3.small`で作成しましたが、任意のインスタンスタイプを選んで作成してください。## Cloud9インスタンスのボリュームを拡張する
t3.smallのデフォルトのボリュームは10GiBです。
これだと色々とインストールしている段階で容量が足りなくなるので、容量を拡張します。(容量が足りなくなるとインストール時に`No space left on device`)と表示されます。
拡張手順は以下の記事を参照してください。
https://qiita.com/ktrkmk/items/8cf1e100da2e717f3be2
私は一旦30GiBまで拡張しました。## homebrewのインストール
以下のコマンドでインストールします。“`
$ sh -c “$(curl -fsSL https://raw
これを見ればPythonの内包表記を完全に理解できる
内包表記とは。
一応、内包表記って何??という方に簡単に例を示します。“`py3
n = 6
a = []
for i in range(n):
a.append(i)b = [i for i in range(n)]
print(a == b) # True
“`これはとても簡単な例ですが、まあなんとなくどんなものかはわかったと思います。(内部処理はまだ理解できていなくて良いです。)
aとbは、結果は同じものになっていますが、具体的にどんな処理を行っているのかを説明していきましょう。前者は、
1. まず空のリスト(可変長オブジェクト)を生成してaという変数に代入します。
2. rangeオブジェクトを生成します。
3. 2のオブジェクトから各値を取り出し、iという変数に代入します。
4. iを1で作成したリストにappendしていきます。(3, 4を繰り返します。)後者は
1. まず空のリスト(可変長オブジェクト)を生成します。(この中で行われるiterationの結果を格納していくための箱です)
2. rangeオブジェクトを生成します。
3. 2
mod_wsgi+flask+flask-httpauthのBasic認証でうまくログインできないとき
– FlaskでBasic認証を用いたアプリを作成した
– 手元で直接実行してテストしたときに正しいユーザとパスワードで認証ができる
– しかしApache+mod_wsgiな環境で動かしたときに認証ができない。## 環境
– 言語: python3
– ライブラリ: flask-httpauth, mod_wsgi
– Webサーバ: Apache2.4## 解決方法
以下の設定をapacheのflaskアプリの設定部分に追記する。“`
WSGIPassAuthorization On
“`## 原因
解決方法を見てわかるとおり、mod_wsgiでbasic認証をするために必要な設定がされていなかった。## 参考
– [flask-httpauthを使って、FlaskでBasic認証を5分で実装する](https://qiita.com/mitch0807/items/d5e354a4e6e5b4f04bd6)
– [Djangoで特定のページのみBasic認証をかける](https://yura2.hateblo.jp/entry/2015/04/03/D
猿でも分かるPython入門 (その1)
#はじめに
こんにちは、Rikuと申します。軽く自己紹介をさせていただきますと、普段はコンサルタントとして働いており、プログラミングは基本趣味でコードを書く程度、という人間です。それでも、エクセルなどでは行えない大容量データを用いる場合や高度な分析を行う場合は仕事でもコードを書くことはあり、データ活用が一つのビジネストレンドになりつつある昨今では何かとコードを書く機会は増えつつあります。そのため──コンサルタントという職業上必ずしも必須ではないのですが──後輩からも「エンジニアになりたいわけではないが、分析を自分で進められるようになりたいからデータ分析のためのプログラミングを教えてほしい!」などと言われることは多々あります。そこで色々と初心者向けの記事を捜してみたところ、日本語ではプログラミングのプの字も知らない超初心者向けにPythonの扱い方について体系的にまとめた記事がほとんどないことに気づき、自信の知識の伝達の練習も兼ねてここで知識ゼロ超初心者向けのPython解説を行おうと思った次第です。
本記事はPythonの入門者から初心者への橋渡し的な記事にしようと思っており、4,
AtCoder Judge System Update Test Contest 202004 参戦記
# AtCoder Judge System Update Test Contest 202004 参戦記
初の全完で、順位も上位9%という. なんで rated じゃないんですか!(机をバンバン).
## [A – Walking Takahashi](https://atcoder.jp/contests/judge-update-202004/tasks/judge_update_202004_a)
2分で突破. すでに日に当たっている場合は、現在位置が答え. 現在位置がL未満ならLが答え、現在位置がRを超えているのならRが答え.
“`python
S, L, R = map(int, input().split())if L <= S <= R: print(S) elif S < L: print(L) elif S > R:
print(R)
“`## [B – Picking Balls](https://atcoder.jp/contests/judge-update-202004/tasks/judge_update_202
Google Code Jamの予選に参加しました
Google Code Jam2020のQualification Roundに参戦しました。
結果は75点で約4万4千人中806位でした。
予選ラウンドより先に進むためには30点取ればよく、得点状況はリアルタイムで分かるので大半の人は30点を超えた時点で諦めていたと思います。
ですが、ぼくはおよそ20時間ほど粘りました(最終Submitこそ16時間でしたが)
正直AtCoder緑でここまで問題を解くことが出来て自分でも信じられないのですが、結果は嘘をつかないので参戦記としてまとめてみようと思います。
### 解説
#### [A. Vestigium](https://codingcompetitions.withgoogle.com/codejam/round/000000000019fd27/000000000020993c)N列N行からなる正方行列がT個与えられます。それらのトレースkと、同じ数字が含まれる行数r, 同じ数字が含まれる列数cを出力してください。
まぁ最初に「トレースってなんぞや?」となるのですが、2行目に「対角線の合計値(左上から右下に走るもの)とあること
コロナ患者数が都が確保してる病床数超えたから自宅療養する人が増えるだろうから一人で不安だしなんかあった時の為に助けを求めるボット作った。【説明編】
#はじめに
[この記事](https://www.google.co.jp/amp/s/www.jiji.com/amp/article%3fk=2020040400181&g=soc)を読んで、とうとうコロナウイルス感染患者数が東京都の確保した病床数を超えて、自宅療養が増えるみたいなので作りました。とりあえずテストで公開なのでLINEは一旦無料プランなのですが、利用者が万が一増えたら有料にしようかなと思ってます。
LINEプッシュ代が怖いけれど・・・。とりあえず[このボット](https://lin.ee/nuBNXt0)をシェア
![775sszex.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56585/38bcccb1-a156-24d1-5502-aa0083c6ed70.png)今回は簡単な説明
#メニュー
友達追加をするとデフォルトで下のようなメニューがセットされていますので、これの説明を書きます。
![richmenu_1585813023461.jpg](https:
pygame で音楽再生した時、音程が変わってしまう。
#pygameで音楽を再生する。
今回は、Pythonで音を鳴らすために”pygame”のライブラリをインストールした。しかし曲の音程が変わるという問題が発生したので、解決方法を書いておく。##環境
Python: 3.7.4
pygame: 1.9.6
mutagen: 1.44.0##最初に実行したコード
“`pygame_test.py
import pygame.mixer
import timedef main():
filename = “test.mp3” #曲のファイル名を指定する。(フルパスを指定したほうが良い)
pygame.mixer.init(frequency = 44100) #pygameの初期化
pygame.mixer.music.load(filename) #音楽ファイルを読み込む
pygame.mixer.music.play(1) #再生回数を指定
time.sleep(20) #20秒間動作を停止
pygame.
Atomでatom-beautifyパッケージを使ったコード整形の実行時に出るエラーを回避したい
#実現したいこと
Atomでatom-beautifyパッケージを使ってPythonコードを整形する際に出るエラーを回避したいです。
すでにネット上で様々な情報を収集しながら試行しましたが、なかなか解決できません。
なお、プログラミング初心者です。#発生しているエラー
AtomでPythonコードに対してatom-beautifyのコード整形(「Ctrl+Alt+B」)を実行すると、
下記のエラーが出ます。
![WS000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582686/66b816b9-25e4-9d56-4f7c-ce3007445eb9.jpeg)
#実施済みの内容
###autopep8のインストール
pythonコードにatom-beautifyを実行するためにはautopep8が必要ということでインストール済み
(以下は、すでにインストール済みを示す内容)“`
dissy@dissy1q84:/mnt/c/Users/dissy/djangovirtual$ pi
docker-composeでFastAPIの環境を構築する
# FastAPI?
モダンで高速なPythonのWebフレームワークだそうです。
最近人気らしいので業務で採用してました。公式ドキュメント
https://github.com/tiangolo/fastapiメンバーによって環境が違って導入をスムーズに進められなかったんですが、
Dockerを使ってみんなで同じ作業環境を共有できるようになったのでそのメモです。# 作成したファイル
公式の手順に沿って進めていきます。
最終的にこんなファイル構造になっていればOKです。
超シンプル。
## Dockerfile
公式ドキュメントの[Installation](https://github.com/tiangolo/fast
pipでmojimojiがインストールできない Mac Catalina 10.15.4
## 環境
Mac OS X 10.15.4
Python 3.7
pip 20.0.2## 問題
mojimojiのインストール中に以下のエラーが出て色々試したのですが、うまく行かなかったのでメモ。(1) ソースからsetup.pyを使う方法が載っていたのですが、上の環境下ではうまくいきませんでした。結局gccではなくclangでインストールすればうまくいきました。
## エラー
“`
(エラー省略)
#include_next/* recurse down to the real one */
compilation terminated.
error: command ‘g++’ failed with exit status 1
“`## 解決
“`
CC=clang pip install mojimoji
“`## 参照URL
https://github.com/salestock/fastText.py/issues/116
機械学習のお勉強〜Numpy編〜
#機械学習のお勉強〜Numpy編〜
今回はNumpyについて勉強したのでそれについてのアウトプットをします。
##1.Numpyとは?
機械学習においてデータを整理してくれる外部ライブラリのひとつ。
外部ライブラリではあるが、Anacondaにはインストール済みなのですぐ使用できる。##2.インポート
まずは下記のようにインポート
“`python:test.ipynb
import numpy as np
“`簡単でしょ?
Anacondaじゃない場合はpipにインストールしましょう。##3.どんな時に使うの?
主にデータの整理で使います。
この整理が機械学習においてとても重要なのでNumpyやPandasなどの
データ整理のライブラリはしっかり使えるようにしよう。##4.主な関数
###array関数
配列を作成する時に用います
“`python:test.ipynb
#1次元
test = np.array([1,2])
#2次元
test2 = np.array([[1,2],[3,4]])
“`###arange関数
規則的な配
AtCoder Beginner Contest 161をPythonで実装
#はじめに
AtCoder Beginner Contest 161をPythonで実装したので、復習も兼ねて投稿します。
C++で実装する人が多いですが、私はPythonに最も慣れているのでそちらで記事を細々と書いていけたらなと考えています。![AtCoder Beginner Contest 161](https://atcoder.jp/contests/abc161)
#A – ABC Swap
A問題は3つの箱(a,b,c)があって、その中に数字が入っています。
入力として3つの数字が渡され、・aとbの箱の中の数字を入れ替えます。
・aとcの箱の中の数字を入れ替えます。この二つの操作のあと、a,b,cの箱の中の数字を出力します。
1行目でinput()をstring型で受け取って、空白で分割してリストを作成し、リストの要素を変数に代入しました。2行目で二つの操作が終わったあとの数字を出力しました。
“`Python:
a,b,c=input().split()
print(c,a,b)
“`単純なので、素早く解きたい問題です。
書くことも少なくて困
AtCoder Beginner Contest 161 参戦記
# AtCoder Beginner Contest 161 参戦記
## [ABC161A – ABC Swap](https://atcoder.jp/contests/abc161/tasks/abc161_a)
3分で突破. 書くだけ. オンラインのコードテストが詰まってて時間がかかってしまった.
“`python
X, Y, Z = map(int, input().split())X, Y = Y, X
X, Z = Z, X
print(X, Y, Z)
“`## [ABC161B – Popular Vote](https://atcoder.jp/contests/abc161/tasks/abc161_b)
4分で突破. 閾値が総投票数の 4 * M 分の一なのでまずそれを求め、その閾値を超える票数の商品がM個以上あるかを調べる. オンラインのコードテストが詰まってて時間がかかってしまった.
“`python
N, M = map(int, input().split())
A = list(map(int, input().split())
e-stat APIで政府統計データ(都道府県&性&年代別)取得(json) -> 値とカテゴリマスタからDataFrame生成
# この記事を読む前に
基本的なこと(e-stat APIの利用方法 〜 Pandasのデータフレームへの変換)はこちらの記事に詳しく書かれています
[【Python3】e-StatのAPIで遊んでみる「サービス業が増えている?」](https://qiita.com/kaka__non/items/cda56c2f6a0e342d8730)# この記事のポイント
下記を実施したコード(Python3)を共有します
■ e-statAPIにより、都道府県別ごとの性年代別(5歳刻み)の人口データを使用
■ jsonに含まれるマスタを適用して、数値コードを意味ある文字列に変換する処理を実施(これがちょっとめんどくさかった)結果として、こんな感じのデータフレームを使えるようになります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237551/c5847bd5-d0cc-32c9-48d7-84dad54dc9ad.png)# コード共有
## e-stat APIを使ってjson
SQLAlchemyの落とし穴
# はじめに
pythonでDBアクセスをする際によく使われるORマッパーとして、SQLAlchemyがあります。[sqlalchemyを使用してpythonでDBアクセスをする](https://qiita.com/mink0212/items/d7f31f6e2903c5f0b837)はSQL以外のことをまとめました。今回はSQLAlchemyを理解しないで使用すると困りそうなことをまとめました。# 環境
– python3:3.6.5
– SQLAlchemy:1.3.7
– psycopg2:2.8.3# SQLとSQLAlchemyで取得できるものが違う
SQLAlchemyにはORMでの更新以外にもSQL文を直接使用することができます。DBから更新する方法と取得する方法が異なると意図した情報がとれないので気を付けてください。## 具体例
同一セッション内であってもコミット前にSQL文で変更した内容をORMで取得しようとしたら更新前のものが取れてしまいます。逆も同様です。## 実験
SQL文やORMで更新した後にSQL文とORMで取得して内容を表示してみ
Python3 データをプロットすると軸の範囲が変化してしまいます
(Python3.6.8 Shellを用いています)
入力するデータファイル(plot_graph_data.txt)を、
1 1.1
2 1.2
3 1.6
としてデータを読み込み、次のグラフを作成したいと考えています。(Hello Helloの描画は除く)![2020-04-04 180949.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613741/7f8c157c-52f9-feb9-98c6-b9ff61d4a030.png)
次のようなプログラムを書きましたが、
下図の実行結果のようにx軸,y軸の範囲が目的のグラフと異なる結果になってしまいました。原因を教えてくださいm(_)m
自分の書いたプログラム
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x=[]
y=[]
fp = open(‘plot_graph_data.txt’,’r’)
for i, line in enumerate(fp):
d
【随時更新】自然言語処理で使う Python スニペット集 〜 青空文庫データを例に 〜
## 目次
– [事前準備](#事前準備)
– [パッケージのインポート](#パッケージのインポート)
– [データの取得](#データの取得)
– [ファイル読み書き](#ファイル読み書き)
– [zipファイルの解凍・ファイルの読み込み](#zipファイルの解凍・ファイルの読み込み)
– [ファイルを1行ずつ読み込む](#ファイルを1行ずつ読み込む)
– [ファイルの保存](#ファイルの保存)
– [前処理ーテキストのノイズ削除](#前処理ーテキストのノイズ削除)
– [正規表現でマッチした箇所を削除](#正規表現でマッチした箇所を削除)
– [正規表現パターンのコンパイル](#正規表現パターンのコンパイル)
– [事前に正規表現にマッチする箇所を確認](#事前に正規表現にマッチする箇所を確認)
– [正規表現パターンにマッチする箇所を取り除く](#正規表現パターンにマッチする箇所を取り除く)
– [数字を0に置換](#数字を0に置換)
– [半角・全角スペース、改行コードを削除](#半角・全角スペース、改行コードを削
【エラー対処】TypeError: ‘list’ object is not callable
Python初心者がハマってしまったエラーへの対処を書きます。
<エラー>
TypeError: ‘list’ object is not callable<原因>
関数であるlistを変数として定義してしまっている。<対応方法>
1.whosで変数の一覧を確認し、listが変数として定義されていることを確認する。“`
whos
“`
以下のように、実行結果を得られます。
listが変数として定義されてしまっています。“`
func functionlist list n=3
“`2.変数として定義してしまったlistを削除する。
“`
del list
“`以上で、変数listを削除できました。
(もちろん、誤ってlistを変数定義している箇所の修正も必要。)
【機械学習図鑑】巻末のPython演習をデータを確認しながら実施したときのメモ
## 概要
先日DataCampのデータサイエンティストコースを修了しました。
英語での学習だったこともあり、日本語でざっとおさらいしたいと考えていたところ、機械学習図鑑という本がわかりやすくてよかったので読んだのですが、ありがたいことに「第4章 評価方法及び各種データの扱い」でPythonコードで実際に演習をする写経コンテンツがあったので復習しました。途中少しコードを加筆修正している箇所もありますが、基本的にはほぼそのままです。
各コマンドで変わっていくデータ状態を確認するために、適宜コメントでデータのshape等を記載しています。オリジナルのサンプルプログラムは下記URLで公開されていますので、オリジナルはそちらを参照ください。
ダウンロードの際には是非翔泳社さんのサイトへのサインアップをお願いします。* [機械学習図鑑 – サンプルプログラム](https://www.shoeisha.co.jp/book/download/9784798155654)
コードの区切りは、実際に演習をした際にコードレベルで切ることができるところで分割しており、複数のトピックが混ざっ