Python関連のことを調べてみた2021年02月12日

Python関連のことを調べてみた2021年02月12日
目次

クリップボードから読み込んだデータからヒストグラムを作る

# 背景
実験結果からヒストグラムを書きたいときがよくある。大体エクセルで散布図や平均値・標準偏差などを描いている流れで、ところで一応ヒストグラム見ておきたいという事が多々ある。そんな時に、エクセルではヒストグラムを作るのがいちいち面倒である。また、対象のデータがそこまでない場合、ヒストグラムのためだけにCSVファイルを作っているのは面倒だと思う。

# 目的
エクセルで閲覧しているデータを簡単にpandasのデータフレームとして扱って、ざっくり全体のカラム毎の分布を確認するときに必要な方法をまとめる。

# 概要
– エクセルで対象のテーブルを作っておく
– 全体を選択してコピーする
– pythonで受け取る
– ヒストグラムを書く

# コード
“`hist.py
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt

#クリップボードから読込
df = pd.read_clipboard()

#データを確認
df.head()

#ヒストグラムを書く
from pylab

元記事を表示

PEP 634, 635, 636 (Structural Pattern Matching) を読んだよメモ

今週の火曜日、PEP 634〜636 の 3本の PEP が Accept されました。

この 3本の

元記事を表示

量子情報理論の基本:表面符号によるユニバーサル量子計算(2)〜Braidingで論理アダマール演算〜

$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$

## はじめに

[前回の記事「量子情報理論の基本:表面符号によるユニバーサル量子計算(1)」](https://qiita.com/SamN/items/6a2d0bbcb7b603b23bd4)では、平面格子上に構成された欠陥対をBraidingさせることで、論理CNOT演算が実現できることを見てきました。また、論理パウリ演算($X$,$Z$)は、欠陥対をつなぐチェーン上の量子ビットに対するパウリ演算子の積、または一つの欠陥を囲むループ上の量子ビットに対するパウリ演算子の積で表すことができるのでした。ユニバーサルな量子計算を実現するためには、これら以外に「アダマール演算」と「位相シフト演算($S$,$T$、およびそのエルミート共役)」が必要です

元記事を表示

バッチファイルでPythonファイルを実行する際の注意点

こんにちは!
駆け出しエンジニアのこうすけです!
今日は、長らく悩んでいたバッチファイルで
Pythonファイルを開くことが出来ました!
原因を確認してみた時、新しく発見がありましたので備忘録も兼ねて共有させていただきます。

# 環境
“`・Windows 10 64bit
・Python3.9.1“`

#バッチファイル

“`bat:sample.bat
cd C:\Users\スクレイピングアプリ一覧\sample
python sample.py
pause >nul
“`

解説します。
1行目、cdコマンドでファイルを移動します。
2行目、pythonファイルを起動します。
3行目、このままだとすぐコマンドプロンプトが終了してしまうためこの記述をすることで終了するまでコマンドプロンプトを表示してくれます。

しかし、これだとエラーが起こってしまいます。

#エラー内容
“`bat:sample.bat
cd C:\Users\スクレイピングアプリ\sample
The system cannot find the pat

元記事を表示

Python はてなブックマークをキーワード検索

# Python はてなブックマークをキーワード検索

はてブのエントリーはRSSを使って取得する
公式 … http://developer.hatena.ne.jp/ja/documents/bookmark/misc/feed

## RSS

パラメーター
q … キーワード
sort … ソート(新着順:recent, 人気順:popular)
threshold … 最低はてブ数
date_begin … 開始日 {YYYY-MM-DD}
date_end … 終了日{YYYY-MM-DD}

**キーワード**
https://b.hatena.ne.jp/search/text?q=PHP&mode=rss&date_begin=2021-02-01&date_end=2021-02-01

**タグ**
https://b.hatena.ne.jp/search/tag?q=PHP&mode=rss&date_begin=2021-02-01&date_end=2021-02-01

**タイトル**
https://b.hatena.ne.

元記事を表示

DataFrameレシピ: データ抽出条件

PandasのDataFrameはたまにしか使っていませんでした。いつもググりながら使っていましたが、本格的に使うに当たり、整理をしてみました。`query`関数でできることや注意点、ブールインデックスとの比較などを整理しています。

# まとめ(早見表)
私が参照したい部分を一番上に持ってきました。全般的に`query`関数の方がシンプルに記述できますが、文字列はブールインデックスの方がやや読みやすいです。

## 文字列・数値共通

|条件|query|ブールインデックス|
|:-:|:-:|:-:|
|等号|df.query(‘C == “b”‘)|df[df[‘C’] == ‘b’]|
|不等号|df.query(‘C != “b”‘)|df[df[‘C’] != ‘b’]|
|否定|df.query(‘not C == “b”‘)|df[~(df[‘C’] == ‘b’)]|
|AND|df.query(‘A > 0 and C == “b”‘)
または
df.query(‘A > 0 & C == “b”‘)|df[(df[‘A’] > 0)&(df[‘C’]

元記事を表示

Pythonのリストをポイントクラウドとして保存する

“`Python:GetPCD.py

# coding: utf-8
import open3d as o3d
import numpy as np

world = [[0.0, 0.0, 0.0], [0.0, 0.05, 0.0], [0.0, 0.1, 0.0], [0.05, 0.0, 0.0], [0.05, 0.05, 0.0], [0.05, 0.1, 0.0], [0.1, 0.0, 0.0], [0.1, 0.05, 0.0], [0.1, 0.1, 0.0], [0.0, 0.0, 0.05], [0.0, 0.05, 0.05], [0.0, 0.1, 0.05], [0.05, 0.0, 0.05], [0.05, 0.05, 0.05], [0.05, 0.1, 0.05], [0.1, 0.0, 0.05], [0.1, 0.05, 0.05], [0.1, 0.1, 0.05]]

xyz = np.array(world)
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector

元記事を表示

自作のPythonコードのドキュメント化の話

# READMEが終わらない、、

コードを一通り作り終わり、さぁ公開するか!とするときに、READMEを書かなきゃ行かんかったことを思い出し。
書き始めるのですが、、、書いても書いても終わらない、、、

そもそも、自分が人のライブラリ使うときは使ってみてる人のブログを見て、専用のdocumentページをみて、それでもどうにもならんかったらソースを見て、、と、READMEにそこまで期待するわけじゃないんですよね。。

きちんとしたdocumentationの方法と、公開の仕方をちゃんと調べますか。。

# ドキュメントを生成しよう
## pydoc
これまでみて見ぬふりを決め込んでたましたが、そうもいかんですね。

手元のubuntu dockerで実行、、、できない。
pipで入れるもの、、でも無いんですね。
私の環境ではpythonはOSの標準のものを使うようにしてますし、それに合わせてaptで導入。

“`
$ apt install python-dev-is-python3
“`

まずは、試してみる。

“`
$ cd ./src
$ pydoc
$

元記事を表示

matplotlobで数式と日本語を使えるようにする!

[matplotlib](https://matplotlib.org/)でタイトルやラベルに数式を挿入、日本語を表示する手法を一つずつ紹介する。

## 環境
* macOS BigSur 11.1
* Python 3.8.6
* matplotlib 3.3.3

# 数式
数式はLaTeXコマンドを用いて以下のように書くことで挿入できる。LaTeXコマンドがわからない方は[こちら](http://www.latex-cmd.com/)を参考にすると良い。

“`python
r’$LaTeXコマンド$’ #表示したい数式をLaTeXで書く。
“`
例えばx軸のラベルを$\Gamma(x)$にしたい場合は

“`python
plt.xlabel(r’$\Gamma(x)$’)
“`
のように書く。

# 日本語化
matplotlibで使用するフォントを変更し、日本語も表示可能にする。フォントは無料で使用できるIPAexゴシックに変更する。
### matplotlibのインストール先の確認
matplotlibのインストール先を確認するために以下のコマンドを叩く。

元記事を表示

AppleScript ・cron・pmsetで毎日のルーティーンを自動化しよう!

指定したURLやアプリを決まった時間に起動させる

こんにちは!
皆さんは毎日見るサイトって決めてますか?
自分は毎日日経新聞や自分のfeedを読んでいるます。Trelloを使ってTodo管理もしています。
でも自分の手でURLを開いているとついつい忘れてしまうことってありますよね?

そこでURLやアプリを決まった時間に自動で開いてもらうスクリプトを書いてみました。
これでURLやアプリを開くことに頭を割くことなく自動で行ってくれるので、新聞を読んだりTodoを朝設定することを習慣にすることができました。

AppleScriptを使ってURLとアプリを開くスクリプトを作成

cronで決まった時間にスクリプトを実行

スリープしてるとcronが実行してくれないのでpmsetでcron起動直前にスリープ解除をする設定

という流れで行きます。

##目次
1.AppleScriptの作成
2.cronの設定
3.pmsetの設定
4.まとめ

##1.AppleScriptの作成
URLとアプリを起動するAppleScriptを書きます。

“`AppleScr

元記事を表示

Heroku で pyzbar を使う

## はじめに
pythonのpyzbarを使ってQRコードを読み取るアプリをHerokuでデプロイしようとしていたところ、
import Errorでハマったので備忘録

## 環境
– Heroku
– python 3.9.1
– pyzbar 0.1.8

## 概要
pyzbarはzbarのラッパーのためライブラリが必要。
ubuntuではlibzbar-devをインストールすれば使えるよう。
Windowsでやっていたから気付かなかった。

## 1. Buildpackを追加
Herokuからheroku-buildpack-aptというbuildpackが公開されている。
デプロイ時にAptfileに書かれているパッケージをインストールしてくれる。

また、heroku-buildpack-zbarというbuildpackもあるよう。
こちらはデプロイ時にzbarをインストールしてくれるらしいが未確認。

今回はaptを使っていく。

## 2. Aptfileを作成
“`text:Aptfile
libzbar-dev
“`
これだけでデプロイ時に勝手にやってく

元記事を表示

TensorFlowでカスタムロスを作成して、TensorFlowでの処理の感覚を覚えよう

本稿ではTensorFlowでの自作のLoss関数を作成することで、機械学習でポイントとなる、まとめてデータを処理するという感覚にちょっと親しんでみたいと思います。TensorFlowの初歩からちょっと踏み出してみましょう。

## 標準のMnistプログラム

まずは簡単なmnistの画像分類プログラムから開始します。これは皆さんも一度はやったことのある題材ではないでしょうか。さっそく取り組んでみます。

今回はTensorFlowに加えて、TensorFlow Datasetsをライブラリとして使用します。

“`
>pip install tensorflow -U
>pip install tensorflow_datasets -U
“`

“`mnist.py
import tensorflow as tf
import tensorflow_datasets as tfds

# データセット変換処理用関数定義
def transform(data):
image = data[‘image’]
image = tf.cast(image, tf.f

元記事を表示

RealSense – RGB画像でクリックした位置の3次元情報を取得する

RealSenseのカメラ画像上でクリックした点に対応した3次情報を取得するプログラムです

“`Python:GetClickPoint.py
# coding: utf-8
import pyrealsense2 as rs
import numpy as np
import cv2

def get_click_point(event,x,y,flags,param):
global depth_frame

if event == cv2.EVENT_LBUTTONDOWN:

if x>=640:
return

depth = depth_frame.get_distance(x, y)
point = np.array([x,y,depth])
if depth==0 :
print(“ERROR: cannot get depth data ! “)
return

x=point[0]

元記事を表示

Tensorflow Object Detection API でモデルの評価

###手順

・検証データはpipeline.configのeval_input_readerに記述しておきます。

“`:pipeline.config

eval_input_reader {
label_map_path: “/content/drive/My Drive/signate/label_map.pbtxt”
shuffle: false
num_epochs: 1
tf_record_input_reader {
input_path: “data/eval.tfrecords”
}
}
“`

・トレーニングと同じ「model_main_tf2.py」をチェックポイントディレクトリ(トレーニングで生成されたもの)に追加して、実行。
*GPUありでの実行のみサポートしています。

“`python

python object_detection/model_main_tf2.py \
–pipeline_config_path=”my_model_dir/pipeline.config” \
–model_dir=

元記事を表示

[Djnago初心者]DjnagoでTodoリストを作成する①

# はじめに

この記事では「DjnagoでTodoリストを作成する」の第1回として、ロケットを飛ばすところまでやっていきたいと思います。
対象読者としては、

– 基礎を学んだけど何を作って良いかわからない。
– 作りたいものがあるけど、手が動かない。
– Django開発の大まかな流れを知りたい。

を想定しています。
早速みていきましょう。

ここでは細かい詳細を省いているので、解説をみたい方はこちらをみてください。
[かるでねブログ](http://www.cardenema.com/?p=79)

# 仮想環境の構築
仮想環境はAnacondaで作成します。

“`terminal
conda activate 仮想環境名
“`

上記のコマンドをターミナルで打って、仮想環境に入りましょう。

# Djangoプロジェクト作成
“`terminal
# デスクトップまで移動します。
cd Desktop

# todoディレクトリを作成して移動します。
mkdir todo
cd todo

# djangoプロジェクトを作成します。
django-admin star

元記事を表示

Python・R・VBAのまとめ

# はじめに

機械学習の勉強を始めたVBAユーザです。
備忘録としてPython・Rの文法をVBAと比較しながらまとめています。

いくつか記事を書きましたが、各言語で使用する関数等を比較した一覧表の部分をまとめました。
比較のために、EXCELでの計算も一部示しています。

# 文法

## 基本的な文法
記事:https://qiita.com/swathci/items/97de2111e70c10205521

### 基本的な書き方

||Python|R|VBA|
|:–|:–|:–|:–|:–|
|変数の宣言|宣言しない|宣言しない|Dim 変数名 As 変数型
の形で宣言|
|大文字と小文字の区別|区別あり|区別あり|区別なし|
|複数行を1行にまとめて書く|`;`区切り|`;`区切り|`:`区切り|
|1行を複数行に分けて書く|`/`で改行||`_`で改行|
|スペース|自由|自由|自動的に調整|
|インデント|制御文でブロックを表す|自由|自由|
|コメントアウト|`#`の後|`#`の後|`’`の後|
|文字列|`’“’`囲み
`”“”

元記事を表示

Dreadful Python Programming Assignments

![python assignment help.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009772/a9f54b4d-bcb5-55f3-49d5-4f571ade4603.jpeg)

Fundamentals of Python Programming Assignment

If the students want Help with Python Assignment, then they need not go anywhere else when we are here. Python is not an easy programming language. It takes a lot of time to understand. Select courses are available which the students need to take, but it takes a long time to become an expert. We are the servic

元記事を表示

ゼロから作るDeep Learning❷で素人がつまずいたことメモ: まとめ

# はじめに

[「ゼロから作るDeep Learning❷ーー自然言語処理編」](https://www.oreilly.co.jp/books/9784873118369/)を読み終えたので、その感想やこれから読む方に向けてのメッセージなどを列挙してみます。購入を悩んでいる方や、読み始めたけど途中で挫折してしまった方の参考になることがあれば幸いです。

# 感想

最近話題の翻訳や文章生成などがどんな感じで実現されているのかを、ざっくりとですが把握できるようになりました。読んで良かったです。

# ゼロから作れるようになる?

がんばり次第です。全くアドバイスになっていませんが:sweat:

私は、最初のうちは前巻同様[^1]に一からコードを書いて読み進めていたのですが、途中でいろいろと多忙になってしまい、後半は[本のコード](https://github.com/oreilly-japan/deep-learning-from-scratch-2)をちょっといじって動かす程度になってしまいました。でも、もしずっと暇だったら、この本を読みながら最後までコードを書くことはできていた

元記事を表示

それでも文字認識なら、きっとリザルト画面から自動で集計してくれるはず

最近流行りの[Apex Legends](https://www.ea.com/ja-jp/games/apex-legends)ですが、先日[Vtuber最協決定戦](https://vtuber-esports.jp/4thtournament/)なる大会が開かれていました。
Apexをプレイし、Vtuberの配信をのんびり見る典型的なオタクである僕は当然見ていたのですが、大会自体は見ているこちらがApexをプレイしたくなるような、非常に熱く面白い内容でした。

そんな素晴らしい大会の終盤、ひとつの悲劇が起きました。**そう、集計ミスです。**
この大会の総合順位は、各試合の順位ポイントとキルポイントを合算したポイントで決定されますが、この合算する処理にミスがあったようで総合順位が変動してしまいました。

詳しい集計方法は分かりませんが、確かに全20チームの順位だけでなく、60人の出場選手全てのキルポイントをリザルト画面から記録・集計するというのはミスが起きやすそうな状況です。
しかもこのゲームにはリスポーンがあり、「全チームの合計キル数」と「60人から最後に生き残った勝利チームの

元記事を表示

numpy.datetime64をPythonのdatetime.datetime型にキャストする

## TL;DR

“`python

import datetime

# numpy_datetime = numpy.datetime64型の変数
python_datetime = datetime.datetime.fromtimestamp(numpy_datetime.astype(datetime.datetime) * 1e-9)
“`

参考:https://stackoverflow.com/questions/13703720/converting-between-datetime-timestamp-and-datetime64

## 補足

– たとえばpandasでエクセルデータをDataFrameにしたとする。その際、セルのデータ型が日時だと、numpy.datetime64にキャストされる。
– これをPythonのdatetime.datetime型にするのはすこしめんどくさかった。結論として、“numpy.datetime64 -> unixtime -> datetime.datetime“と変換すればよい
– numpy.dateti

元記事を表示

OTHERカテゴリの最新記事