- 1. 盤面の情報取得 Python3編(Aランクレベルアップセット)
- 2. Pythonのプリント関数(続編)
- 3. Python: 2次元データ分布状態の図化(カーネル密度推定のコンターに意味を与える)
- 4. 2. Pythonで綴る多変量解析 8-1. k近傍法(scikit-learn)
- 5. ChemDataExtractor:シンプルテキストから固有表現抽出(Named Entity Recognition; NER)を行ってみる
- 6. 閾値処理(スレッショナルド)
- 7. 『Effective Python 第2版』 第2章<リストと辞書>
- 8. pg_configとかビルドとかwheelとかよくわからないけどMacにpsycopg2を入れたい
- 9. 【データサイエンティスト入門】科学計算、データ加工、グラフ描画ライブラリの使い方の基礎♬Numpyの基礎
- 10. mecab-python3やtransformersのBertJapaneseTokenizerで辞書を指定する
- 11. [Python]分散処理ライブラリRayを使ってシングルプロセスアプリを”完全に”そのまま分散処理アプリに変換する方法
- 12. Python3 APIをC言語から利用する記述のサンプル
- 13. SageMakerでモデルをデプロイしたら「java.lang.IllegalArgumentException: reasonPhrase contains one of the following prohibited characters: \r\n:」エラーが発生した
- 14. Raspberry PiとPythonでリモコンカーを作成する
- 15. [Python学習その2]JSON形式データから値を取得する方法
- 16. ちょっと最適化問題が解けるplatypusを動かしてみた
- 17. Pythonでフーリエ変換
- 18. データサイエンス100本ノック解説(P001~020)
- 19. DOY (Day Of the Year)を日付フォーマットに変換 / How to convert DOY to Month and Date
- 20. ChemDataExtractor(導入編)
盤面の情報取得 Python3編(Aランクレベルアップセット)
“`python:banmen.rb
h,w,n = [int(i) for i in input().split()]
bord = [list(input()) for i in range(h)]
for i in range(n):
a,b = [int(i) for i in input().split()]
print(bord[a][b])
“`
Pythonのプリント関数(続編)
##はじめに
こんにちは、今回は、前やったpythonプリント関数の続編をやろうと思います。簡単に話せば、変数に数や文字を代入して、文字列として出力してみたいと思います。##変数の代入
まず、変数に文字や数字の代入の仕方がわからないと話になりません。なのでまず変数の代入の仕方を説明したいと思います。まず変数の代入は、このようにかきます。
“`ruby:hensuu.py
x = “XXXXX”
“`これは、変数xに文字列のXXXXXを代入しろという意味です。
次に数字を代入してみましょう。“`ruby:hennsuu.py
x = 100
“`これでできました。意味は、変数xに数字の100を代入しろという意味です。
では、今日のメインに移りましょう。##print関数に代入してみよう
いよいよprint関数に代入します。まず変数を用意しましょう。“`ruby:hensuuprint.py
x = 10
“`実行してもなんの合図もありませんが大丈夫です。次に、出力してみましょう。
“`ruby:hensuuprint.py
print(x)
Python: 2次元データ分布状態の図化(カーネル密度推定のコンターに意味を与える)
## はじめに
[前回投稿](https://qiita.com/damyarou/items/981b69fa4a64aee5c5df)では、2次元データ分布状態をカーネル密度推定に基づきコンターにより図化したが、コンター線を引く高さについては、特に確率的な意味は考えず、確率密度関数の高さに応じて定めていた。
カーネル密度分布のコンターについては、「Seabornを使えば、2次元データ分布のコンターがかけるよ」というような記事はしばしば見かけるが、その線にどういう意味があるのかということを解説したものは見たことがない。また、お客さんにコンターを見せれば、「その線の工学的意味は?」と聞かれるのは目に見えている。そのため、今回は、前回から少し発展させ、コンター線を確率値に基づいて引くことを試みた。
自分なりの理解でやっているため、間違いなどもあるかもしれませんが、その場合はご指摘願えればと思います。## やりかた
以下にカーネル密度推定からコンターを引く部分のコードを示す。カーネル密度推定では、データの分布に基づき、確率密度関数が出力される(下記コード6行目の変数“`f“`)。
2. Pythonで綴る多変量解析 8-1. k近傍法(scikit-learn)
* いくつかのグループがあり、それらに属するサンプル群の属性はわかっていて、そこへ別の**新たなサンプルが加わったとき、どのグループに属するか**を求めるのが **k-NN(k-Nearest Neighbor : k近傍法)**です。
* 具体的には、既存のサンプル群から、**新たなサンプルと属性が近い K 個**を取得し、それらの中で多数派のグループに決定するという分類方法です。この **k** 個が**k-NN**と呼ばれる所以です。![2_8_1_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502109/2aa294c4-d000-99a4-e03f-dc02c5ec26a1.png)
* かりにk=3とすると青グループと判断され、またk=12とすると緑グループに分類されるので、k の個数によって判断は違ったものになります。
**回帰にも使えますが、ここでは分類のケースを行ないます。**
###⑴ ライブラリのインポート
“`python
import nump
ChemDataExtractor:シンプルテキストから固有表現抽出(Named Entity Recognition; NER)を行ってみる
# 概要
論文や特許文献から材料名,化合物名,そしてそれに紐づく物性値を自動的に取得したり抽出したりしてマイニングしたい.そのようなときに使われるのが,近年ではpythonライブラリのChemDataExtractorに勢いがあります.あまり日本語の解説サイトがないので,メモとして書き残しておきます.
* [ChemDataExtractor(導入編)](https://qiita.com/shin0502/items/a9904c4509b9b08a5c10)
# テキスト
今回のテキスト解析はオープンジャーナルの*Nanomaterials*から,以下の有機ELの青色発光のTADF論文から例文を使います.*Nanomaterials* **2019**, 9(12), 1735; https://doi.org/10.3390/nano9121735
**A Novel Design Strategy for Suppressing Efficiency Roll-Off of Blue Thermally Activated Delayed Fluorescence
閾値処理(スレッショナルド)
#実行環境
[Google Colaboratory](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)#Google Colaboratoryで画像を読み込む為の準備
“`python:
from google.colab import files
from google.colab import drive
drive.mount(‘/content/drive’)
“`#必要なライブラリの読み込み
“`python:
import cv2 #opencv
import matplotlib.pyplot as plt
%matplotlib inline
“`#画像準備
“`python:
img = plt.imread(“/content/drive/My Drive/Colab Notebooks/img/Lenna.bmp”)
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
“`#スレッショナルド処理
“`python:
『Effective Python 第2版』 第2章<リストと辞書>
# はじめに
* こんにちは、takadowaです。
* 前回の[『Effective Python 第2版』 第1章<Pythonic思考>](https://qiita.com/takadowa/items/44db07e227a58287b193)に引き続き、今回は第2章<リストと辞書>について、面白かったこと、大事だと思ったこと、初めて知ったことなどをまとめていきたいと思います。# 実行環境
サンプルコードを掲載する際は、以下の実行環境で実行した結果を掲載します。
できる限りミスのない形で提供することを心がけますが、動かない、間違っているなどがありましてもご容赦ください。* macOS 10.14.6
* Python 3.8.5# 第2章<リストと辞書>
## catch-allアンパック(項目13より)通常のアンパックは `a, b = [1, 2]` のように書きますが、この書き方だと値の数が一致しない場合、エラーが発生します。
“`python
# 通常のアンパックだと、左辺と右辺とで値の数が一致しない場合はエラーとなる
a, b = [1, 2,
pg_configとかビルドとかwheelとかよくわからないけどMacにpsycopg2を入れたい
DjangoでPostgreSQLを使用したいなと思い、
普通にpip install psycopg2でインストールしたいなと思った時に、
いろいろ詰まって調べていた中に体系的な情報が少なかったので、
備忘録的に書き溜めておきます。macOS Catalina 10.15.6
Python 3.8.5
pip 20.1.1普通にpip installした時に、長文の赤い文字のエラー文が吐き出されてこちらまで吐血しそうだったのですが、エラー文を掻い摘んで見てみると。
“`
Using cached psycopg2-2.8.5.tar.gz (380 kB)
Building wheels for collected packages: psycopg2
Building wheel for psycopg2 (setup.py) … error
“`wheelのBuilding??ナンノコッチャ??
とりあえずsetuptoolsとwheelというのをインストールしてみる。“`
% pip install –upgrade pip setup
【データサイエンティスト入門】科学計算、データ加工、グラフ描画ライブラリの使い方の基礎♬Numpyの基礎
昨夜は、[【データサイエンティスト入門】科学計算、データ加工、グラフ描画ライブラリの使い方の基礎として環境構築](https://qiita.com/MuAuan/items/38f70f7d823a2f79196a)の話をしましたが、今夜はNumpyの基礎をまとめます。
【注意】
[「東京大学のデータサイエンティスト育成講座」](https://www.amazon.co.jp/%E6%9D%B1%E4%BA%AC%E5%A4%A7%E5%AD%A6%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%82%B9%E3%83%88%E8%82%B2%E6%88%90%E8%AC%9B%E5%BA%A7-Python%E3%81%A7%E6%89%8B%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B6%E3%83%87%E2%80%95%E3%82%BF%E5%88%86%E6%
mecab-python3やtransformersのBertJapaneseTokenizerで辞書を指定する
Ubuntu18.04で[huggingface/transformers](https://github.com/huggingface/transformers)の`BertJapaneseTokenizer`を使ったときに辞書の指定で苦労したのでメモ.
こんな感じです.
“`python
In [1]: import MeCab
In [2]: mecab = MeCab.Tagger(“”)
Failed initializing MeCab. Please see the README for possible solutions:
https://github.com/SamuraiT/mecab-python3#common-issues
If you are still having trouble, please file an issue here, and include the
ERROR DETAILS below:https://github.com/SamuraiT/mecab-python3/issues
issue
[Python]分散処理ライブラリRayを使ってシングルプロセスアプリを”完全に”そのまま分散処理アプリに変換する方法
![ray_header_logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641788/84172b4b-263f-2552-9956-fe23c7ed88c8.png)
# Rayとは
RayとはPythonの**高級**マルチプロセスライブラリです。
Pythonは元々MultiProcessingという分散処理ライブラリをデフォルトで備えていますが、あんな低級なライブラリは使ってられません。
RayをPythonと同等の高級ライブラリとすればMultiProcessingはバイナリ言語くらい低級です。
日本ではアホか!ってくらい認知されていませんが[RayのGithub](https://github.com/ray-project/ray)には1200件ものIssueが寄せられるほどに大人気のライブラリです。
ちなみにあのTensorflowでも3700件です。
元々は強化学習用に開発されましたが、あらゆる分散処理アプリケーションを実現できます。一度使うともう他の方法で分散処理を書き
Python3 APIをC言語から利用する記述のサンプル
[こちらの記事](https://qiita.com/ytaki0801/items/83f8bc510342b7945519)のPython3版.同様の内容は[公式サイト](https://docs.python.org/ja/3/extending/index.html)含めて数多あるが,当方でやりたかったことがひとつにまとまったものが見つからなかったため,チートシート的に作成.動作確認環境は次の通り.
* Ubuntu 18.04 Desktop x86_64
* gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
* Python 3.6.9 (Debianパッケージ python3.6,python3.6-dev)および
* Termux 0.98 (aarch64-linux-android)
* clang version 10.0.1
* Python 3.8.5 (pkg install)および
* Raspberry Pi 4 Model B (Raspberry Pi OSプリインストール)
* gcc (Raspbian
SageMakerでモデルをデプロイしたら「java.lang.IllegalArgumentException: reasonPhrase contains one of the following prohibited characters: \r\n:」エラーが発生した
## 事象
SageMakerのノートブックインスタンス上にて、チュートリアルなどにある典型的なコードでモデルをデプロイしようとした。“`python
pytorch = PyTorchModel(
model_data=model_data,
role=IAM_ROLE_ARN,
framework_version=’1.4.0′,
py_version=’py3′,
entry_point=entry_point,
sagemaker_session=sagemaker_session
)predictor = pytorch.deploy(
initial_instance_count=1,
instance_type=’ml.c5.large’,
accelerator_type=None,
endpoint_name=endpoint_name,
wait=False
)
“`デプロイ自体は成功し、エンドポイントのステータスは`InService`になった。
しかし、クラ
Raspberry PiとPythonでリモコンカーを作成する
# Raspberry PiとPythonでリモコンカーを作成する
## はじめに
`Mac環境の記事ですが、Windows環境も同じ手順になります。環境依存の部分は読み替えてお試しください。`
### 目的
スマートフォンからWEBアプリのコントローラに繋ぎ、Wi-FI介してリモコンカーを制御します。ラジコンをインターネットで動かすイメージです。
この記事を最後まで読むと、次のことができるようになります。
| No. | 概要 | キーワード |
| :— | :————— | :————— |
| 1 | 電子回路 | |
| 2 | REST API | Flask |
| 3 | コントローラ制御 | HTML, JavaScript |
| 4 | モータ制御 | モータGPIO |
| 5 | サーボモータ制御 | サーボモータGPIO |
[Python学習その2]JSON形式データから値を取得する方法
##始めに
今回はPythonを使ってJSON形式データの取得から値の取り出しを行う
###作業環境
OS:Mac
ソフト:JupyterLab
言語:Python###参考サイト
[JSONで配列の入れ子構造や値の取得方法などをPythonを使って説明!](https://www.sejuku.net/blog/79079)
いつもありがとうございます!##実際にやってみる
参考サイトからJSONを用意します“`python:test.py
json_test ={
“name”: “taro”,
“age”: 23,
“sex”: “man”,
“hobby”: [
“running”,
“swimming”,
“singing”
]
}
“`ここからageの値を取得する
“`python:test.py
json_test[“ege”]#23
“`次はsexの値を取得する
“`python:test.py
json_test[“sex”]
#’man’
“`ここまでは簡単に理解できた
次にh
ちょっと最適化問題が解けるplatypusを動かしてみた
####なんか暑くて疲れていたのでplatypusで最適化してみた
ベイズ推定の勉強にちょっと疲れてきたので、口安めに、なんか最適化してみたくなって、ちょっとやってみた。
[Platypus – Multiobjective Optimization in Python](https://platypus.readthedocs.io/en/latest/index.html#)にマニュアルがありました。インストールは、どうも`platypus`でなくて、`pip install platypus-opt`で-optがいるようです。
それでインストールしたら、サンプルを動かしてみましょう。
サンプルは、
[A Simple Example](https://platypus.readthedocs.io/en/latest/getting-started.html)
の、DTLZ2 問題ってのを、 NSGA-IIで解く問題のようです。一体、このDTLZ2問題ってのがなんなのか?情報があまりありません。
とりあえず我らが[同志社のpdf](http://www.is.dosh
Pythonでフーリエ変換
# はじめに
何かデータをフーリエ変換したくなることがある。例えば先生から「そのデータ、フーリエ変換してみたら?」と言われた時とか。なんとなくフーリエ変換がどういうものかは知っていて、PythonとかのライブラリにFFTがあるからデータを食わせればすぐ変換できるということも知っているが、なんとなく定義に自信が無い、そんな時もあるだろう。
そういう場合は、厳密にフーリエ変換がわかるような単純な系について実際にデータを食わせてみて、理論値と一致することを確認するのが望ましい。しかし、実際にやってみると「アレ?」と思うことが結構ある。以下ではPythonでFFTをする時の注意点等を紹介する[^1]。
[^1]: 計算にあまり自信がないので、ご利用は自己責任で。計算ミスの指摘を歓迎します。
# ガウス分布
## ガウス分布のフーリエ変換
まずはフーリエ変換の定義から確認しておこう。ある関数$f(x)$のフーリエ変換$\hat{f}(k)$は
$$
\hat{f}(k) = \int_{-\infty}^\infty f(x) e^{-ikx} dx
$$で与えられる。逆変換と
データサイエンス100本ノック解説(P001~020)
#1. はじめに
データサイエンス協会から出ている[データサイエンス100本ノック](https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess)の解説をします。導入については[こちらの記事](https://qiita.com/karaage0703/items/1b18b1f4ab65d35afb5f)を参考に進めてください(※ MacでDockerを扱います)
基本的には解答の解説ですが別解についても記述しています。
#2. 解説編
>P-001: レシート明細のデータフレーム(df_receipt)から全項目の先頭10件を表示し、どのようなデータを保有しているか目視で確認せよ。
“`python:P-001
# head()で先頭行を参照できる。()カッコ内に件数を入力する。空欄の場合は5行。
df_receipt.head(10)
“`>-002: レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商
DOY (Day Of the Year)を日付フォーマットに変換 / How to convert DOY to Month and Date
DOY (Day Of the Year, or DayNumber)は日本ではあまり使われないようだが、ある日付がその年の1月1日から数えて何日目にあたるかを示す日付の通し番号であり、1-366の値を取る。別途「年」を表す記号と合わせて製品の製造日情報などで使われる事が多いと思われる。このDOYから一般の日付、Dateに変換する方法を探したがそのものズバリは見つからなかったので備忘録を兼ねて記す。
DOYはPythonでは Day of the year as a decimal number [001,366] という事でPythonのclass time.struct_timeに存在しAttributeはtm_ydayとなっている。strftime等で扱う場合のDirectiveは%jとなる。
例えば年番号: 19、DOY: 275が与えられた場合は以下の様にstrptimeで入力し、strftimeで形式を指定して任意の日付フォーマットで書き出せる。2019年のDOY275が10月2日であると分かる。
> import time
> ddd=time.strptime(“
ChemDataExtractor(導入編)
#概要
論文や特許文献から材料名,化合物名,そしてそれに紐づく物性値を自動的に取得したり抽出したりしてマイニングしたい.そのようなときに使われるのが,近年ではpythonライブラリの“ChemDataExtractor“に勢いがあります.あまり日本語の解説サイトがないので,メモとして書き残しておきます.* * *
**ChemDataExtractor: A Toolkit for Automated Extraction of Chemical Information from the Scientific Literature**
Matthew C. Swain and Jacqueline M. Cole
*Journal of Chemical Information and Modeling*, **2016**, 56 (10), 1894-1904
[DOI: 10.1021/acs.jcim.6b00207](https://pubs.acs.org/doi/abs/10.1021/acs.jcim.6b00207)
* * *“ChemDataExt