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

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

cross_val_predictを予測精度評価に使ってはいけない

scikit-learnのcross-vakudationに関するドキュメントには、以下の様なコメントやWarningがあります

> The function cross_val_predict has a similar interface to cross_val_score, but returns, for each element in the input, the prediction that was obtained for that element when it was in the test set. Only cross-validation strategies that assign all elements to a test set exactly once can be used (otherwise, an exception is raised).

まず、 Only cross-validation strategies that assign all elements to a test set exactly once can be us

元記事を表示

Twitter API で特定のユーザーのツイートを取得する(Python)

# 概要
tweepyというPythonのライブラリを用いて特定のユーザーのツイートを取得する。

# tweepy インストール
ターミナルで以下のコマンドを実行
“`
pip install tweepy
“`

# APIの認証
tweepyをインポートして、自身のAPIキーやアクセストークンなどを入れる。
[APIの取得方法はこちらの記事](https://di-acc2.com/system/rpa/9688/)が参考になるかと。

“`
import tweepy

# 認証に必要なキーとトークン
API_KEY = ‘API_keyをここに入れてね’
API_SECRET = ‘API key Secretをここに入れてね’
ACCESS_TOKEN = ‘Access Tokenをここに入れてね’
ACCESS_TOKEN_SECRET = ‘Access Token Secretをここに入れてね’

# APIの認証
auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
auth.set_access_token(AC

元記事を表示

GitHub と VSCode とターミナルアプリでフォルダ・ファイルの並び順を合わせる

:::note info
本記事では、フォルダ(ディレクトリ)とファイルを総称して **アイテム** と呼びます。
:::

GitHub では、

– フォルダ -> ファイル
– Unicode

の順にアイテムがソートされ、この順番は変更できないようです(公式での記載は見つかりませんでしたが、おそらくそう)。

よって、GitHub の並び順に合わせることとします。

## Visual Studio Code の設定

デフォルトでは並び順が異なります。

![GitHub と VSCode アイテム並び順比較](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2012908/0797fa20-cc43-4fd7-9896-561b251190d5.png)

VSCode の `設定` から、`Explorer: Sort Order Lexicographic Options` を `default` から `unicode` に変更することで、GitHub での並び順と同一になります。

`sett

元記事を表示

Herokuの無料枠が廃止になるのでDeta.shへ移行する

# HerokuのFree Planが終了するらしい(泣)
https://blog.heroku.com/next-chapter
> Starting November 28, 2022, we plan to stop offering free product plans and plan to start shutting down free dynos and data services. We will be sending out a series of email communications to affected users.

2022/11/28までに有料版にアップグレードしてねとのことらしい。

# Deta.sh
⇒ [Deta.sh](https://www.deta.sh/)へ移行した

> The Cloud for Doers & Dreamers.

[Deta.sh](https://www.deta.sh/)は無料で使えるクラウドプラットフォーム。
デプロイしたアプリははAWS上に展開されるようだ。
主に3つのサービスが使える。

1.

元記事を表示

大量の画像ファイルから一部を切り出す

画像ファイルの左上を切り出す必要がありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/6745fa48-7a1e-5655-ad69-daa41bf86e55.png)
画像ファイルは数百ありまして、画像編集ソフトでひとつひとつ加工するのは大変です。
ということでプログラムにやらせました。

# 実行準備
ここではUbuntuで必要なライブラリをインストールします。
Pythonの画像処理ライブラリ`PIL`のImageモジュールにある`crop`メソッドでもいけそうですが、今回は`OpenCV`を使ってみます。

“`:インストール
apt install -y libgl1-mesa-dev

pip3 install opencv-python
pip3 install opencv-contrib-python
“`

# 処理コード
`imread`メソッドで画像を読み込むと、画像データを2次元配列で返すので **[top:bottom, left:r

元記事を表示

全Jupyterユーザーの願望をサクッと叶える最強ツール「Jupytext」の使い方超まとめ

# はじめに
Jupytextはとても便利なツールですが、日本語の情報があまりネットに落ちてませんでした。なのである程度まとめてみました。会社の LT 会で紹介したところ好評だったのでここでも紹介したいと思います。

https://github.com/mwouts/jupytext

本記事のタイトルに「超まとめ」と入っていますが、ここに書いたこと以外にもできることはたくさんあると思います。需要がありそうだと思えば随時追記していきます。また、詳しい方がおられましたら間違い等のご指摘を頂けますと幸いです。

本記事の流れは以下のようになります。
1. [これはなにか](#これはなにか)
1. [どんな要望に応えられそうか](#どんな要望に応えられそうか)
1. [どうやって使うのか](#どうやって使うのか) (長めです)
1. [その他の使えそうな機能](#その他の使えそうな機能) (長めです)
1. [どんなユースケースが考えられるか](#どんなユースケースが考えられるか) (独断と偏見も含みます)

1., 2. で Jupytext とは何かを簡潔に紹介します。
3., 4.

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

# Python

https://qiita.com/gouwan/items/c83b47ce1b7c77cce7c5

# Ruby

https://qiita.com/may88seiji/items/ce9396a4c267a3d449ae

# PHP

https://qiita.com/tokutoku393/items/ea2a61765eda1dee8f2e

# Java

https://qiita.com/sentral1110728/items/532de46714b7215a2e99

# JavaScript

https://qiita.com/takeshisakuma/items/b23b1a748098f30e2ff2

# Perl

https://perlzemi.com/blog/20161012147627.html

元記事を表示

太陽組成(宇宙組成)について簡単にまとめてみた

# 太陽組成(宇宙組成)について

我々の宇宙や太陽がどういう組成で出来ているのかを、元素ごとの存在比で示した量として[太陽組成(宇宙組成)](https://astro-dic.jp/solar-abundance/) があり、英語では solar abundance や アバンダンス ( [Abundance of chemical elements](https://en.wikipedia.org/wiki/Abundance_of_the_chemical_elements) の略) と言われることが多いです。これをある程度は理解して使いたいのですが、意外と奥が深い(私もまだ勉強中というレベル)のと、簡単にプロットしたいときに、源泉情報を探すのが大変なので、ここでまとめておきたいと思います。

## 太陽組成について簡単な説明

[太陽組成(宇宙組成)](https://astro-dic.jp/solar-abundance/)という言い方をした場合は、太陽光球の分光観測で得られた元素組成を指すだけの時もあれば、隕石(コンドライト)の分析値を合わせて、隕石が太陽系全体の元素

元記事を表示

xraylibを google colab で動かす方法

# xraylib を google colab で動かす方法

xraylib は、主にX線、特に蛍光X線分光に用いられるデータベースなどをまとめたもので、

https://github.com/tschoonj/xraylib

のことです。このツールの背景や使い方については、

https://qiita.com/yamadasuzaku/private/d34996001870d2316de1

に記事を書きましたのでご参照ください。

ここでは、xraylib を使いたいけど、ローカルの python 環境はちょっと、、という方向けに、google colab で動かす方法を紹介します。(記事にしようと思ったのは、ちょっとハマったからであります。)

## google colab での使う方法

– google colab 上で xraylib のインストールの例からは、例題までいくつか紹介してます。
– [https://colab.research.google.com/drive/1m1y2iTgeV8h_Z22hnGtzaHw7ffBFY2Hf?usp=

元記事を表示

xraylib の使い方 (pythonユーザー向け)

# xraylib の使い方

ここでは蛍光X線分析のためのデータベース [xraylib](https://github.com/tschoonj/xraylib) の使い方について紹介します。

https://github.com/tschoonj/xraylib

主に python をベースの解説です。X線の基礎については知っていることを前提とはせずに、できる限り背景やツールの使い方から不定性も含めて解説してみます。(訂正コメントなど歓迎です。)

# X線と xraylib に関する基本事項

まずは [xraylib](https://github.com/tschoonj/xraylib) がどんなものか雰囲気を掴むために、web インターフェースがあるので、

http://lvserver.ugent.be/xraylib-web/

を使ってみよう。雰囲気としては、このようにX線に関する様々な定数や関数が取り揃えてられて、好きな言語で扱う場合のコードの例も表示してくれる優れものです。

![xraylib_gui_explain.png](https://qi

元記事を表示

ワードクラウドで捉える「こち亀」作風の変遷

## キーワードで再発見した「こち亀」の魅力
こち亀は40年間も長期連載していた、思い出の詰まった作品です。
そんなこち亀へのリスペクトと私自身の復習のために、こち亀を徹底的に分析してみました。意外な発見もたくさんあり、こち亀を新たな視点から楽しめたデータ分析となりました。
 具体的な分析内容としては、「ワードクラウド」とよばれる頻度の高いキーワードを大きく表示する視覚化技法を用いて、各時期の象徴的なキーワードを抽出する形をとりました。なお、分析過程でAmazon単行本ページのdescriptionを抽出し、自然言語処理をかけてみました。

(※)Amazon規約を精査しまして、非ログイン状態であればスクレイピングは問題ないことを確認しています。

### 1~40巻:1977/7/9 ~ 1986/5/9
![zero_group_wc_0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726569/31e1a2ce-7596-07fa-eeea-021236908bc7.png)
この時期は、「暴

元記事を表示

AtCoder:ABC266参戦記(A-C)

## はじめに
今日から自己学習用にAtCoder参戦記を書いていこうと思います!
ちなみにABCは2回目の初心者灰色コーダーなので悪しからず、、
使用言語はPython(3.8.2)です。
## [A – Middle Letter](https://atcoder.jp/contests/abc266/tasks/abc266_a)
Sの長さの半分のところを出力すれば良いですね。
~~~python
S = input()
m = len(S)//2
print(S[m])
~~~
## [B – Modulo Number](https://atcoder.jp/contests/abc266/tasks/abc266_b)
for文で998244353まで探索する方法が一瞬頭をよぎりましたが計算量が多すぎるため却下。よく考えると998244353で余りをとって来れば良いだけですね。こういうのを問題見た瞬間に思いつけるようになりたい。
~~~python
N = int(input())
print(N % 998244353)
~~~
## [C – Convex Quadri

元記事を表示

Houdini公式ドキュメントのPythonサンプルを触っていく~その1~

# はじめに
### 概要
HoudiniでPythonを使えるようになりたい。
そうだ!公式のサンプルを触ってみよう、第1回。
今回はこのページを読んでいく。

https://www.sidefx.com/ja/docs/houdini/hom/tool_script.html

公式ページに記載されているコードは基本的に転載せず、修正箇所のみ書いていくのでその点ご容赦。
※サンプルを触るので、基本的な説明の部分はある程度読み飛ばしていく。
※知識的にはツギハギなのでその点はご容赦。。。

### 環境
Houdini19.5.334
python3.9.10

# Pythonの実行方法
HoudiniにおけるPythonの実行場所は以下の種類がある
**1.Python Shell**
対話型で表示される。これが表示されていると、実行結果がコンソールではなくこちらに表示されるようになる。
**2.Python Source Editor**
記述した内容を実行したり、シーン内に関数を保存できる。その場で使用する場合はApply、呼び出すときはhou.session.[関数名]で

元記事を表示

Pythonでwebサイトの構築 Part1 Dockerを利用した環境構築

1 ,はじめに

本記事では、Pythonを用いたwebサイトの実装を行っています。

ローカル環境で簡単なブログサイトを作成することでサーバーサイドで行われていることや、フロントエンドへの反映など基本的な知識の紹介を行います。

ソースコードは[GitHub](https://github.com/TakuyaNakahara-prg/myblog/tree/master)に記載しています。

環境構築

まず初めにするべきこととしてPython(Django)を正常に動作させるための環境をローカルに作成する必要があります。

前提

“`Python:実行OS
Windows11
・性能
CPU : Corei7-11世代
GPU : Intel iris(純正グラフィックス)
メモリ : 16GB
SSD : 512GB
※webサイト構築をプログラミングで行うには最低でもCore i5以上かつメモリ8GB以上が望ましいです。
“`
“`Python:環境構築
本記事ではDockerを利用して仮想環境

元記事を表示

dockerでpython+seleniumのスクレイピング

## dockerを使ってスクレイピング環境構築

pythonを実行するコンテナに、自分でchromeやらドライバをインストールしたりするのは面倒なので、
あらかじめchromeがインストールされたdockerイメージを使いたかったので、環境構築メモ。

python実行環境とselenium実行環境を別のコンテナとして準備して使う。

selenium実行環境はdocker-seleniumのChromeがインストールされたstandaloneイメージを使う。
https://github.com/SeleniumHQ/docker-selenium

## docker-compose
“`yml
version: “3”
services:
selenium:
image: selenium/standalone-chrome:4.1.4-20220427
ports:
– 4444:4444
– 7900:7900
volumes:
– /dev/shm:/dev/shm
app:
build: .

元記事を表示

めも2022年8月28日

## コルーチンとは
一次処理を中断して再開できるもの。

### ジェネレーターで作るコルーチン
– ジェネレータの作成・活性化・値送信
“`python

# ジェネレータを作成
def g_hello():
r = yield
yield r

g = g_hello() # ジェネレータオブジェクトを作成
print(next(g)) # ジェネレータオブジェクトを活性化
result = g.send(‘peanuts’) # ジェネレータオブジェクトに値を送る
print(result)

>>>
peanuts
“`
– 受け取った値に対して処理(greet(r))を加えて返すことも可能
“`python
def greet(r):
return f’hello: {r}’

def g_hello():
r = yield
# yield r
yield greet(r)

g = g_hello() # ジェネレータオブジェクトを作成
next(g) # ジェネレータオブジェクトを活性化
result = g.s

元記事を表示

ヘッドレスブラウザSplashをHerokuにDockerデプロイする

# はじめに
この記事はSplashをHerokuにデプロイする手順の解説記事です。

[Splash](https://splash.readthedocs.io/en/stable/install.html)はJavaScriptレンダリングが可能な、スクレイピングに特化したPython製のヘッドレスブラウザです。
ローカル環境では公式のDockerイメージで起動することができます。“`docker run -it -p 8050:8050 –rm scrapinghub/splash“`

このSplashをHeroku上で動かそうと試したときの手順をまとめます。

#### Splashのイメージ
“`mermaid
sequenceDiagram
クライアント ->> Splashサーバ: リクエスト
Splashサーバ->>Webサイト: リクエスト
Webサイト->> Splashサーバ:レスポンス
Splashサーバ->> クライアント: JS適用後のHTMLやスクリーンショット

“`

# 前提
– Herokuア

元記事を表示

Python 基礎的な組み込み関数

### 組み込み関数について復習
自分用にいくつか関数についてまとめます。

### range関数
連続する整数を生成する。
第二引数でスタートを指定
第三引数でステップを指定
typeはrange
“`python
#連続したリストを生成
list(range(5))
[0,1,2,3,4]

#スタート位置を指定
list(range(1,5))
[1, 2, 3, 4]

#ステップを指定
list(range(1, 10, 2))
[1, 3, 5, 7, 9]

#typeを出力
type(range(5))
range
“`

### enumerate関数
データのインデックスと値をセットで取得する。
for文で使用することが多い

“`python
#リストのインデックスと値を取得
l = [‘apple’, ‘orange’, ‘banana’]
for i,j in enumerate(l):
print(i,j)
0 apple
1 orange
2 banana

# ディクショナリのキーと値を取得
d = {‘apple’:100, ‘ora

元記事を表示

Streamlit まとめ

# Streamlit 覚書

## 1. インストール及びアプリケーションの起動

### 1.1. インストール

“`bash
pip install streamlit
“`

### 1.2. 基本的なファイルの作成と起動

“`bash
touch home.py
“`

“`python
import streamlit as st

# ページ表示用関数
def main():
# Streamlit API の title を使用して文字表示
st.title(‘Hello World!’)

if __ name__ == ‘__main__’:
main()
“`

“`bash
streamlit run home.py
“`

### 1.3. 起動したページの表示

デフォルトの場合は`8501`ポートでサーバが起動する。

任意のブラウザで`http://localhost:8501`に接続し、起動を確認する。

## 2. テキストに関する記述式

### 2.1. 基本的なテキストの表示

“`python
# タイトル。

元記事を表示

ガウス過程力学モデルと主成分分析、ガウス過程潜在変数モデルを比較する

**ガウス過程力学モデル(Gaussian Process Dynamical Model,以下GPDM)** はガウス過程による教師なし学習の一つで、 **ガウス過程潜在モデル(Gaussian Process Latent Variable Model,以下GPLVM)** を拡張したモデルのうちの一つです。

GPLVMでは、潜在変数 $\mathbf{X}=(\mathbf{x}_1,\mathbf{x}_2,\dots,\mathbf{x}_N)$ の独立性を仮定していました。これに対してGPDMは、潜在変数 $\mathbf{X}$ が時系列データであるという仮定を導入して、潜在空間での構造を学習します。

この記事では、GPDMの原論文を参考にしながら、GPDMをゼロから実装し、PCAやGPLVMなどの他の次元圧縮手法と比較してみます。GPDMの基礎となるGPLVMに関する解説は行いません。GPLVMについても知りたい方は[こちらの記事](https://qiita.com/student-i/items/328030426fa42b6010f9)が参考になると思います。

元記事を表示

OTHERカテゴリの最新記事