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

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

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で取得して内容を表示してみ

元記事を表示

アソシエーション分析を活用したレコメンデーションのチュートリアル(概念編)

#この記事について
あまり世間にレコメンドに関してサンプルデータを使って実装したチュートリアルが無かったので記事を書きました。
レコメンデーションを作成する手法は機械学習などを使った手法などがありますが、これは統計よりの手法を使ったレコメンデーション作成方法の記事です。
pythonとオープンデータセットを用いて説明をしていきます。

#レコメンドとは
そもそもレコメンドとは何かですが、**顧客にとって関心があると思われる商品、サービスなどを提供者側から薦めること**です。
下に●MAZONの例を示しますが、ある『掛け布団』の商品ページを見るとそのレコメンド商品として**『掛け布団カバー』**と**『敷布団』**がレコメンドされています。

![20200312_レコメンドについて (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151192/0168f760-9cda-65c7-4305-adf3e745dc23.jpeg)

『掛け布団』と『掛け布団カバー』『敷布団』は

元記事を表示

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 function

list list n=3
“`

2.変数として定義してしまったlistを削除する。

“`
del list
“`

以上で、変数listを削除できました。
(もちろん、誤ってlistを変数定義している箇所の修正も必要。)

元記事を表示

【機械学習図鑑】巻末のPython演習をデータを確認しながら実施したときのメモ

## 概要
先日DataCampのデータサイエンティストコースを修了しました。
英語での学習だったこともあり、日本語でざっとおさらいしたいと考えていたところ、機械学習図鑑という本がわかりやすくてよかったので読んだのですが、ありがたいことに「第4章 評価方法及び各種データの扱い」でPythonコードで実際に演習をする写経コンテンツがあったので復習しました。

途中少しコードを加筆修正している箇所もありますが、基本的にはほぼそのままです。
各コマンドで変わっていくデータ状態を確認するために、適宜コメントでデータのshape等を記載しています。

オリジナルのサンプルプログラムは下記URLで公開されていますので、オリジナルはそちらを参照ください。
ダウンロードの際には是非翔泳社さんのサイトへのサインアップをお願いします。

* [機械学習図鑑 – サンプルプログラム](https://www.shoeisha.co.jp/book/download/9784798155654)

コードの区切りは、実際に演習をした際にコードレベルで切ることができるところで分割しており、複数のトピックが混ざっ

元記事を表示

Python-Markdownのソースを読んでみる:パーサの作り方

# 目的

マークダウンのパーサライブラリがどのように実装されているのか学ぶことにしました。(唐突)
Javaのdomパーサの設計(デザインパターン)が素晴らしいとのことですが、まずは慣れているPythonのライブラリを探してみました。

ちなみにJavaのはこれ。
https://www.tutorialspoint.com/java_xml/java_dom_parse_document.htm

今回は以下のライブラリのソースを読んでみます。

Python-Markdown
https://github.com/Python-Markdown

Markdown->HTMLへの変換ができるみたいです。
当然、中でMarkdownの解析を行なっているわけで、どのような設計になっているのか、拝見しましょう!

理解が間違っている箇所などありましたら、ご指摘ください…!

# 注意書き

`Python-Markdown/markdown/markdown/` 以下にコアな関数たちが集められているようです。
今後は面倒なので、基本的にこのディレクトリ以下のファイルを`sampl

元記事を表示

[matplotlib]科学論文向けグラフ作成サンプル関数

# はじめに
本記事はpythonのmatplotlibを用いたグラフ作成の汎用関数とその簡単な解説になります.
汎用性を高めるため,凡例の増加等にはなるべく繰り返し関数で対応するような工夫をしています.

筆者が必要になった形式のグラフスタイルを記載しています.(定期的に追記します)
性質的に理工学者の研究発表・論文投稿向けです.

# 環境
2020/04/04現在最新のpython3-Anaconda環境を想定しています.
pythonの導入方法はネットでいくらでも出てきますが,ポチポチするだけで済むので,[Anaconda](https://www.anaconda.com/distribution/)がおすすめ.pathは通すようにチェックつけましょう.

エディタは[Visual Studio Code](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)を使用しています.以前はPyCharmを使用していましたが,他の言語と同じエディタを使いたくなったので,変えました.自動整形コマンドが便利です.(

元記事を表示

実際にCOVID-19の状況をデータセットを使って可視化してみる

#はじめに
上陸して猛威を振るい出した**新型コロナウイルスによる肺炎(COVID-19)**ですが、都市部を中心に広がっておりなお感染者数が増加しています。報道番組を見ても知りたいデータもなく頭が痛くなるだけなので、どうせならPythonを使っていろいろしようと思いました。~~(は?)~~ 作ったのはこれだけ。