Python関連のことを調べてみた2020年08月29日

Python関連のことを調べてみた2020年08月29日

RDKit で何となくSMILESを生成するのはそろそろやめよう

#概要
デフォルトオプションを理解せず、なんとなく Chem.MolToSmiles 使うのは、そろそろ卒業しようぜ。ということでまとめたメモ。

#環境
RDkit 2020.03.5

#オプションの説明

| オプション | 説明 |
|:———–|:————|
|iosomericSmiles|SMILESに立体化学に関する情報を含める。デフォルトはtrue|
|kekuleSmiles|SMILESでKekule形式(芳香族結合なし)を使用。 デフォルトはfalse|
|rootedAtAtom|負でない場合、これはSMILESを特定の原子で強制的に開始する。デフォルトは-1|
|canonical|falseの場合、正規化されない。デフォルトはtrue。 |
|allBondsExplicit|trueの場合、すべての結合次数が出力SMILESで明示的に出力される。 デフォルトはfalse。 |
|allHsExplicit|trueの場合、すべてのHカウントが出力SMILESで明示的に出力される。 デフォルトはfalse。|

#や

元記事を表示

[Python] データフレームをリストにすると便利かもね

4.多数のデータフレームをリストにして扱う方法を試してみた。一般的な知識なのかもしれませんが、紹介されたものが無かったのでメモしておきます。
・通常はそれぞれに名前をつけて作業しますね。

import pandas as pd
df1 = …
df2 = …
df3 = …
df1,df2,df3を使った処理

多数のデータフレームを繰り返し処理するのは大変。そこで、リストの登場。繰り返し処理以外でも便利に使えますね。私は複数のデータフレームを読み込んで、マッピングする際などに使用しています。

import pandas as pd
df = []
for i in range(3):
df.append(…)
for i in range(3):
df[i] = …

初心者です。監修、よろしくお願いします。

元記事を表示

Bリーグデータを使ってDocker環境でDashとStreamlitを使い比べてみた

# 概要
Pythonの可視化ライブラリであるDashとStreamlitを触ってみたので簡単に感想などをまとめたいと思います。

# DashとStreamlitについて

## Dash
https://dash.plotly.com/

DashとはPythonのWebフレームワークで、PythonのWebフレームワークとしてよく知られている[Flask](https://flask.palletsprojects.com/en/1.1.x/)や[Django](https://docs.djangoproject.com/ja/3.1/)と同じ部類です。
一般的なPythonのWebフレームワークとの違いとして、Dashは可視化に特化しており、Flask/Plotly/Reactをベースにして作られているWebフレームワークです。

## Streamlit
https://www.streamlit.io/

StreamlitとはPythonのWebフレームワークです。
Dash同様に可視化に特化しており、React/Bootstrapをベースにして作られているWebフ

元記事を表示

素因数分解が既に分かっている場合の約数列挙 (Python)

# はじめに

AtCoder等の競技プログラミング問題を解いているとき、「素因数分解は既に分かっているから、これを組み合わせて約数を生成したい」ということをやりたくなる場合があります。
その方法について、教わった&考えた内容をまとめました。

# 問題

このような問題を考えます。

> **問題**
> $N$ 個の整数からなる数列 $A$ があります。
> 数列 $A$ の積 $A_1 * A_2 * … * A_N$ を $X$ とするとき、 $X$ の約数をすべて出力してください。

> **制約**

> * $N <= 2 * 10^5$ > * $A_i <= 2 * 10^5$ > * $X <= 10^{18}$ > **入力形式**

> “`
> N
> A1 … AN
> “`

**Sample**

Input

“`
3
2 2 3
“`

Output

“`
1
2
3
4
6
12
“`

# 素朴な解法

素朴には、まず積

元記事を表示

yukicoder contest 263 参戦記

# yukicoder contest 263 参戦記

## [A 1198 お菓子配り-1](https://yukicoder.me/problems/no/1198)

突破できず. どこが★1だよというツッコミどころしかない. N≤1025 で int64 に収まらず、これだけでも★1ではないよなと思った. まあ、Python は int64 の値域を超えてても平気であるが. 数学問題なんだろうなあとは思ったけど、やっぱり解けなかった.

“`python
N = int(input())

if N == 1 or N == 4 or N % 4 == 2:
print(-1)
else:
print(1)
“`

## [No.1199 お菓子配り-2](https://yukicoder.me/problems/no/1199)

素直な DP. 偶数個取った時の最大値、奇数個取った時の最大値を更新してばいいだけ.

“`python
from sys import stdin
readline = stdin.readlin

元記事を表示

YOLOv3の特徴マップを見てみよう

#YOLOv3の特徴マップを見てみたい
最近の流行として判断根拠の可視化がよく見受けられると思います。
自分は大学でpythonを始めることになって、yolov3を少し扱っているので特徴マップが可視化できればいいなと思っていました。
また、初心者ですのでプログラムに詳しかったり、基本的な書き方ができていたりしないので、何卒お手柔らかにお願いします。
ここで、今自分の扱っているyolov3のコードは
[Github : “qqwweee/keras-yolo3”](https://github.com/qqwweee/keras-yolo3)
のコードです。
このコードを少しいじって特徴マップの可視化を行いたいと思います。

※あくまで自分が特徴マップっぽいのを取り出せたかもしれない!と思う記事になります。

#いじったところ
yolov3は出力が小,中,大と3つ出力されるみたいなので3つ取り出してみました。
yolo.pyでいじったところは最初のinitのところとgenerateの最後の部分とdetect_imageです。
コメントが書いてあるのでみてみてください。

~~~pyth

元記事を表示

if文を使わずに1と2を入れ替える

1と2を入れ替える便利な書き方を知ったのでメモ。

# 1と2を入れ替える書き方

“`python
n = 1
print(n%2+1) # 2
m = 2
print(m%2+1) # 1
“`
これだけ。

# 他の数字について考えてみよう

これだけじゃ記事にならないので、頭の体操として他の数字について考えてみる。

## 0と1を入れ替える

0と1を入れ替えることを考えてみよう。boolで扱うとかはなしで。

“`python
n = 1
print((n+1)%2) # 0
m = 0
print((m+1)%2) # 1
“`

できた。

## 2と3を入れ替える

同じように2を3、3を2に入れ替えてみる。

“`python
n = 2
print((n+1)%2+2) # 3
m = 3
print((m+1)%2+2) # 2
“`
## 3と4を入れ替える

3を4、4を3に入れ替えてみる。

“`python
n = 3
print(n%2+3) # 4
m = 4
print(m%2+3) # 3
“`

### 一般化してみよう

元記事を表示

TensorFlow Addonsのsparse_image_warpを使って顔画像を変形してみた

# はじめに
最近こんなStack Overflowを見つけた.
[sparse_image_warp in Tensorflow doesn’t work?](https://stackoverflow.com/questions/57371510/sparse-image-warp-in-tensorflow-doesnt-work)

2つの画像を用意して,片方をベース,もう一方をリファレンスとして画像をwarp(歪める)する関数がTensorFlow Addonsに用意されているらしい.
仕組みとしては,ベース画像とそれぞれの画像のlandmarkを入力して,リファレンスのlandmarkに対応したベース画像が生成される.

~~詳しくは見てないが,面白そうなのでやってみた.~~

# TensorFlow Addonsとは?
一言でいえば,TensorFlowの追加機能.
https://www.tensorflow.org/addons?hl=ja

以下公式より引用
>TensorFlow SIG Addons は、コミュニティの貢献によるリポジトリで、確立された API

元記事を表示

操作変数法に関して

## 操作変数法とは何か?
調整・観測できない交絡のある構造下で平均因果効果を推定しようとした時に、交絡を調整することなく操作変数と言う変数を用いて因果効果を推定する手法です。

特に観測できない交絡がたくさん考えれる社会科学のデータ分析だと有用されています。

以下ではDAG(Directed Acyclic Graph)と呼ばれる、それぞれの変数の因果関係を表したグラフである。このDAGを使って操作変数を使うとなぜAからYへの因果効果が推定できるかを説明していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179708/94bcb579-fab2-8b8d-6b9b-1993f4890bf3.png)
ここで、

– A: 施策/処置
– Y: Outcome変数
– Z: 操作変数
– U:観測できない交絡変数

と言う4つの変数があり、それぞれ矢印で結ばれている。DAGでは
**矢印を指している側の変数が、刺されている側の変数に影響を及ぼしている**
と解釈す

元記事を表示

犬ですが何か?Django–初めてFormを使ってみるPOST送信の巻

#Formで送信してみる
こんにちは!柴犬のぽん太です。
今日はお風呂場でなすがままに体を洗ってもらいました。そのあと、なんだか自分じゃないみたいな変な感じがしたのでひたすら身体中を舐めていました。

さて、今日はフォームに挑戦です。

#テンプレートにformを記述する

“`wan/templates/wan/index.html




{{ title }}

{{ title }}

{{ message }}

{% csrf_token %}


カスケード分類器の不正解画像を正解画像の正解が映っていないところから切り出して生成

初投稿です。ほぼ自分用の備忘録です。
#はじめに
 カスケード分類器は画像から対象オブジェクトを検出するためのアルゴリズムです。カスケード分類器の学習時には正解画像とどこに対象オブジェクトがあるのかを指定するファイル、そして対象オブジェクトが映っていない画像(不正解画像)を用意する必要があります。ググるとネットからランダム収集してきた画像を不正解画像として使っている例が多く紹介されています。しかしながらカスケード分類器の「偽陽性率が一定より低くなるまで学習を続ける」という性質を前提として、作ったカスケード分類器を使う場面が限定的である場面を考えると不正解画像のランダム収集は必ずしも得策でない場合があると思います。(必要以上に計算時間がかかる。偽陽性率のノルマを達成しようとするあまり偽陰性率があがってしまう。そもそも不正解画像に正解となるべき画像が紛れ込む(人の顔とかだと結構あるのでは?))
 つまり、入力が限定的であることを想定するなら、用意する不正解もその限定条件内での不正解のみに絞ればよいのではないかという考えのもと、今回紹介するプログラムを書きました。あるいは手っ取り早く有効そう

元記事を表示

あいうえお+

kkkkk+
Python

元記事を表示

Qiita API + Pythonで記事のアクセス数やいいね数を取得する

# Qiita API + Pythonで記事のアクセス数やいいね数を取得する

## はじめに

`Mac環境の記事ですが、Windows環境も同じ手順になります。環境依存の部分は読み替えてお試しください。`

### 目的

Qiita APIを使って記事のアクセス数やLGTM数を取得します。

この記事を最後まで読むと、次のことができるようになります。

| No. | 概要 | キーワード |
| :— | :——– | :——— |
| 1 | Qiita API | |
| 2 | REST API | requests |

### 完成イメージ

“`command.sh
page_views_count=11130, likes_count=21, title=REST APIを使ってSalesforceのデータを取得する, url=https://qiita.com/nsuhara/items/19cf8ec89b88fb3deb39
page_views_count=04778, li

元記事を表示

「ほん訳コンニャク」 を使ってみよう。

※この記事では『「ほん訳コンニャク」 を食べて 論文を読もう』で紹介している Translation-Gummy(ほん訳コンニャク)の導入方法を解説しています。「Translation-Gummy(ほん訳コンニャク)?何それ美味しいの???」という方は、上記の記事を覗いてみてください?‍♂️

こういったことができます

Python から Octave スクリプトを呼ぶ oct2py のメモ

# 背景

* Python での数値計算コードが合っているかどうか, Octave でリファレンスを記述して確かめたい.
* Octave での結果を Python 側に持ってきて matplotlib とかでプロットしたい.
* numpy/scipy では提供されていない関数 or Octave のほうが処理が早い関数を呼びたい.

Python から Octave スクリプトを呼ぶ oct2py があります.

https://blink1073.github.io/oct2py/

## インストール

“`
pip install oct2py
“`

でいけます. Pure python なので Windows でもそのままインストールできます.

Octave 側の svd 関数など呼ぶサンプル

https://blink1073.github.io/oct2py/source/demo.html

ありがとうございます.

## OctaveMagic

Jupyter notebook で, inline で magic コマンド(?)として Octave

PythonによるAI作成入門!その3 畳み込みニューラルネットワーク(CNN)で画像を分類予測してみた 

# 本記事について
前の記事からの続きです。

畳み込みニューラルネットワーク(CNN)を使って、画像の分類をしてみたいと思います。
本記事のその1で、ニューラルネットワークによる手書きの数字画像の分類を行いましたが、
CNNではより精度の高い分類が可能です。

# 畳み込みニューラルネットワーク(CNN)って?
画像を扱う際に最もよく用いられている深層学習モデルの1つです。
通常のニューラルネットワークに加えて、
「畳み込み」という処理を加えるため、「畳み込みニューラルネットワーク」と言います。

# 「畳み込み処理」ってなに?
近年、スマホのカメラも高画質になって1枚で数MBもあります。
これをそのまんま学習に利用してしまうと、容量が多すぎてとても時間がかかります。
学習の効率を上げるために、画像の容量を小さくする必要があります。

しかし、ただ容量を小さくするだけではダメです。
小さくすることで画像の特徴が無くなってしまうと
なんの画像かわからなくな

元記事を表示

[Kaggle]メラノーマコンペ参加記

# 0.はじめに

![expert.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549401/03419fc4-6529-6165-2a6c-7e1f72d06683.jpeg)
KaggleのSIIM-ISIC Melanoma Classificationという医療画像コンペで銅メダル(191 place, top 6%)を獲得し、Kaggle Expertになったのでその参加記を投稿します。

メラノーマコンペの概要、新しく学んだ理論、試した手法、上位solutionが含まれます。
特に手法に関しては参考になる部分はないかと思われますので、読み飛ばしていただいて構いません。
この記事ではある程度機械学習, Kaggleについての知識を前提としていますが、ニュアンスだけでも読めますので軽く読み流して頂けると幸いです。

## 0-1.ざっくり結論
・非常にシンプルなタスクで、時間がない中でも取り組みやすかった
・データのかさ増しと、upsamplingが重要なコンペであった(が、upsampli

元記事を表示

データ構造を可視化するソフトを作る 〜ヒープ編〜

最近少しデータ構造が面白いので、OOPの練習も兼ねてこれから少しずつデータ構造を可視化するソフトを作っていきます。

その第一弾としてヒープを可視化しました。
よかったら見ていただけると嬉しいです。
機会があればヒープソートの解説とかの記事も書こうと思っています。
またボチボチ更新していこうと思います。

全くソースコードの使い方がわからない人向けにどうやって使うかを説明します。
このソースをコピペしてデスクトップにdata.pyなどという名前で保存します。
そのあとターミナルを開いてターミナルから cd Desktop と打ち、python data.pyとやれば基本的には動くはずです。
ちなみに僕はmacで動かしているのでwindowsでの動作はわかりません。

“`python
from tkinter import *
import time

class EntryAndButton(Frame):
def __init__(self, master, **kwargs):
super().__init__(master)
self

元記事を表示

進数

# 進数の表記

16進数の表記
16進数をリテラルで表記する場合、Python3では以下のような形式になります。
・先頭に「0」を付ける
・その後に「x」を記述する
・続けて0から9まで、及びaからfまでの英字を書く
「x」を含め、英字は大文字・小文字どちらでも構いません。

16進数の数値リテラルをキーボードから打ち込むと、10進数に変換した数値を表示します。
Pythonでは、16進数リテラルを数値型として扱います。
16進数のリテラルを10進数に自動的に変換します。
【16進数のリテラルを入力した例】 0x1ff → 511

数値から16進数相当の文字列を得るには、hex()という組み込み関数を使います。
引数に数値を与えると、16進数相当の文字列を返します。
「hex」とは、英語で16新数表示を意味する「hexadecimal」を略したものです。
【10進数の数値を16進数相当の文字列に変換した例】 hex(1023) → ’ox3ff’

16m進数の数値リテラルではなく、16進数相当の文字列を数値に変換するためには、組み込み関数のint()を使います。
ただし、第2引数

元記事を表示

pyautoguiを【超適当に】マルチディスプレイ環境に対応させる Part2

前回の記事:[pyautoguiを【超適当に】マルチディスプレイ環境に対応させる Part1](https://qiita.com/kznSk2/items/a6833c095aec3b8ce72e)

# 目的
pyautogui.locateOnScreen()で得た座標を、そのままpyautogui.click()に渡したい。

# 環境
python 3.8.5
pyautogui 0.9.50
pyscreez 0.1.26
OS windows限定
[win32api](https://github.com/mhammond/pywin32/releases)
上記はpipからインストールできないので、リンクから自分の環境にあったものをダウンロードしてインストールする必要がある。

# 調査
locateOnXXX()系の関数は大体locateOnScreen()を呼び出しているので、この関数を修正する。

~~~python:pyscreez\__init__.py

def locateOnScreen(image, minSearchTime=0, **kwargs)

元記事を表示

OTHERカテゴリの最新記事