Python関連のことを調べてみた

Python関連のことを調べてみた

polarsで全部表示したい時

こんにちは、ひらきちです。

(pandasすら触ったことがないのですが)
業務上、polarsで分析することになり、
「データが全部表示されない!(省略される)」
となって困ったので、
ちょっと色々調べて、
やっとうまくいったので後学のためメモを残しておこうと思います。

# Q&A
Q:polarsで出力したDataFrameを全部見たいのですが
A:こうやったらうまくいきました
“`
import polars as pl

#
# polarsを使ってDataFrameを作る
#
df = xxx

# 全部表示する
with pl.Config() as cfg:
cfg.set_tbl_cols(df.width);
cfg.set_tbl_rows(df.height);
print(df)
“`

# (私の環境では)うまくいかなかった

## github copilot&chatGPTの提案手法

– 提案手法
“`
# 最大列数を30に設定
pl.options.display.max_columns = 30
print(df)

元記事を表示

2 つの日付の間の日数を求める

Excelが一番簡単
“`
=DATEDIF(“2024/1/1″,”2024/4/25″,”d”) + 1
“`
Pythonの場合
“`python
import datetime

start = datetime.date(2024, 1, 1)
end = datetime.date(2024, 4, 25)

# 日数を計算
day = (end – start).days + 1

print(f”{start}から{end}までの日数: {day} 日”)
“`

※開始日と終了日が同日の場合、1としたいので+1している

dateutilsがインストールできる環境であればこちらも簡単
“`shell
# インストール
sudo apt install dateutils

dateutils.ddiff 2024-01-01 2024-04-25
“`

元記事を表示

Pytorchを使ったBidirectional LSTMによる文章分類の推論結果が異なる問題

# 起きた問題
下記のHPを参考にBidirectional LSTMを用いて文章分類タスクを解く。
– https://qiita.com/m__k/items/db1a81bb06607d5b0ec5
– https://tma15.github.io/blog/2020/09/06/%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86lstm%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%8F%E6%96%87%E6%9B%B8%E5%88%86%E9%A1%9E-pytorch%E3%82%B3%E3%83%BC%E3%83%89%E4%BB%98%E3%81%8D/

以下で学習した学習済みモデルを用いて推論したところ、推論結果がbatch_sizeによって変わった。
“`python:models.py
import numpy as np
import torch
import torch.nn as nn

class LSTMClassifier(nn.Module):
def _

元記事を表示

`rye sync`に失敗する(Windows 11、 x86_64) Ryeの環境構築

:::note warn
現時点(2024/04/25)で未解決です。同一症状で解決した方がいれば教えて下さい。
:::

## Rye

Rust製のPython用パッケージマネージャ。Documentを読んだ感じRustと同じような開発体験っぽかったのでやってみることに

## 環境構築

### インストーラのダウンロード

[公式サイト](https://rye-up.com)に記載されているように自分のWindowsのBitに合わせてインストーラをダウンロードする。
64bit版の方をインストール。

### インストール

シェルで対話モードになるのでお好みで設定をする(バージョン指定だったり、Pythonの細かいことは知らないので割愛)

### プロジェクトを作成

“`
rye init –script my-project
cd my-project
“`

### 仮想環境の作成

Ryeは基本仮想環境を作ってそこでPythonを実行するので、初回はその環境を作成する必要がある。
なのでバージョンの指定と環境作成のコマンドを実行

“`
rye sync

元記事を表示

【3分で爆速構築】PCから出る音も録れるGUI録音アプリを作る(ステレオミキサー非搭載PC対応)【Python】

# はじめに

Pythonだけで、簡易的にサウンド入力デバイス/ループバックの出力デバイスを選択し、その音を録音できるアプリを作ってみました(主にWindows向け)。
GUIの実装にはTKinterの拡張モジュール「CustomTKinter」を利用しました。

※ 現時点の実装には不具合があるため、一度に長時間の録音や(10分以上)、消失したくない重要な音声の録音には使わないでください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1373557/394a6884-455a-185e-e707-9c526fe2ca1d.png)

「EZ Sound Capture」という名前でGitHubにアップロードしました。ぜひ環境に合わせて機能拡張や改造していだだければと思います!

https://github.com/keisuke-okb/ez-sound-capture

**PCから流れる音を録音する時によく出てくる「ステレオミキサー」は不要です。非搭載の環境でも動作します

元記事を表示

[Python] リストのコピーに関する注意点

pythonのリスト複製,コピーについての注意点をまとめました.
(間違いありましたらご指摘お願いします)

# 目次
**1. 「参照渡し」≠「コピー」**
**2. 多重リストの場合も注意**

# 1. 「参照渡し」≠「コピー」

list1の内容をlist2に複製したい時,通常の変数の代入のように
“`python:参照渡し
list2=list1
“`
とすると,
list1,list2の一方に対する操作が他方にも反映されてしまいます.

リストを安全に複製するためには
“`python:コピー
list2=list1.copy()
“`
とすると,list2にはlist1のコピーが渡されるので,それぞれ独立した別のオブジェクトとして扱うことができます.

以下では,実際に参照渡しとコピーの場合の違いについて,元のlistに変更を加えた場合に変更がどのように反映される(されない)のかを

“`python
array=[1,2,3,4,5]
copied_array1=array #参照渡し
copied_array2=array.copy()

元記事を表示

ディズニーホテル ミラコスタは、どんなホテルだったのか。

# はじめに

ディズニーシーの新ホテル「ファンタジースプリングス」が公開されましたね!
本記事では、ファンタジースプリングスの公開を記念して、現時点で最高ランクの
ホテル ミラコスタ がどんなホテルだったのか振り返りたいと思います。
方法としては、レビュー分析AI ReviewAI (レビューアイ)を使って
[じゃらん](https://www.jalan.net/)さんに集まっているレビューを分析していきます。

# ホテル ミラコスタ

[ホテル ミラコスタ](https://www.jalan.net/yad370886/?yadNo=370886&dateUndecided=1&screenId=UWW3703&smlCd=120508&yadoDetailMode=1&distCd=01)

> パークの中に宿泊できるディズニーテーマパーク一体型ホテル。イタリアンクラシックをコンセプトにした上質な空間で、パークでの冒険を振り返り、明日への航海に想いを馳せることができます。

言わずと知れた、ディズニーの最高ランクのホテルです。

# ReviewAI (レビューアイ)

元記事を表示

Anacondaのインストール手順【写真付き手順】

## ANACONDAインストール方法

### Anaconda Download Page

Distribution

### インストール手順

・上記のリンクからAnacondaのダウンロードサイトにアクセスして、使用しているPCの環境に適しているかを確認した後、Downloadを押下する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958142/8f16c7ae-9e75-301c-1667-0f7f2432f7c2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958142/505f5ceb-6da2-3b40-079c-b66ab0645454.png)

任意の場所に保存する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

エラーが怖い?それならSyntax Errorを「起こす」ことから始めよう

# はじめに
こんにちは! @RyoSakon001 です。[Fignny株式会社](https://fignny.co.jp/)でPython, PHP, TypeScriptのエンジニアとして働いています。
エンジニアとして業務を始めたての頃は、エラーにとにかく悩まされがち。そんなあなたにピッタリの情報をお届けできればと思います。

## こんな人に読んでほしい
– 駆け出しエンジニアの方
– 駆け出しWebデザイナーの方
– 育成担当ベテランエンジニアの方

## エラーの大半って、実はコレ
人括りに「エラー」と言っても、色々な種類があります。超〜アバウトに、大別してみます。

1. **Syntax Error**
1. **Undefined**
1. **その他**

その中で、1, 2番がおよそ8割を占めていると思います。そして、実は本当に難しい(可能性がある)のは3番だけで、1, 2番は初心者の方でも簡単に解決できてしまうのです。

## エラーへの恐怖心をなくすには、自分で「わざと」起こしてみること
**「最初は怖いけど、やってみると大したことなかった」** という経

元記事を表示

python lambda式

lambda [引数] : [処理内容] で関数を記述できる。

#### Example
“`diff_python
def sum(a,b):
return a + b
“`
これをlambdaで書くと、
“`diff_python
>>>sum = lambda a,b: a + b
>>>sum(1,2)
3
“`

関数を引数として渡す場合なんかに簡潔に記載できる
“`diff_python
#lambdaを使わない場合
pairs = [(‘three’,3),(‘two’,2),(‘four’,4),(‘five’,5),(‘one’,1)]
def pair(item):
return item[1]
pairs.sort(key=pair)
pairs#[(‘one’, 1), (‘two’, 2), (‘three’, 3), (‘four’, 4), (‘five’, 5)]
“`
“`diff_python
#lambdaを使う場合
pairs = [(‘three’,3),(‘two’,2),(‘four’,4),(‘five’,

元記事を表示

フォルダ内のm3u8ファイルを読み込んで、mp4にダウンロードするスクリプト

# フォルダ内のm3u8ファイルを読み込んで、mp4にダウンロードするスクリプト

この記事では、指定されたフォルダ内の`.m3u8`ファイルを見つけ出し、そのURLから`.mp4`として動画をダウンロードするPythonスクリプトの作成方法について解説します。また、ファイルのエンコーディングが異なる場合の対処方法についても触れます。

## 使用技術

– **Python 3**: スクリプト言語として使用。
– **subprocess**: 外部プロセス(ffmpeg)を実行するために使用。
– **concurrent.futures**: Pythonの標準ライブラリで、非同期実行を扱うため。
– **re**: 正規表現を利用し、ファイル内からURLを検索するため。

## ソースコードの解説

### ダウンロード関数: `download_m3u8`

この関数はffmpegコマンドを利用して、指定された`.m3u8` URLから直接`.mp4`ファイルへと変換・ダウンロードします。ffmpegは強力なメディア処理ツールで、ここではストリーミングデータを受け取って単一

元記事を表示

Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較

## はじめに
みなさん様々な言語でAPIサーバーを立てて負荷試験を実施したことはありますか。

私自身、業務でPythonのアプリケーションに対して負荷試験を実施した経験があります。

その際にPythonの速度観点の不安定さを目の当たりにしたと同時に、別の言語ではどのような違いが生まれるのだろうか、という疑問を持ちました。

そこで今回は、簡単ではありますがGoとRustとPythonでそれぞれAPIサーバーを立てて負荷試験をしてみます。

## 負荷試験対象のAPIサーバー
今回は(1) Hello, World!を返すAPI(2) ファイル読み込みAPI(3)1秒待ってから応答するAPIの3つを実装します。

(1)はAPIサーバー自体の応答速度の計測、(2)はメモリを消費する処理が生じた場合のAPIの応答速度の計測、(3)は待ち時間発生している時のAPIの応答速度の計測することが目的です。

(2)について、ファイル読み込みAPIとはAPIが叩かれた際に特定のファイルを読み込んで完了メッセージを送るAPIを意図しています。(POSTではなく、 GET)

読み込む対象のファイ

元記事を表示

金子勇さんのED法の解説と弱点、行列積を使用した効率的な実装

# はじめに
先日以下の記事が話題となり、とてもワクワクしたので自分も実装して色々実験してみました。

https://qiita.com/kanekanekaneko/items/901ee2837401750dfdad

https://qiita.com/pocokhc/items/f7ab56051bb936740b8f

実装するうちに理解が深まったので一度、
– 誤差拡散法の元ネタ紹介から
– 数式の解説、
– ED法の弱点、
– 行列計算を使用した実装と簡単なテスト結果、
– 実装上の工夫

までまとめてみたいと思います。

# 誤差拡散(Error Diffusion)法
もともとは画像の2値化において失われる情報を周囲のピクセルで補うことで、遠目に元の画像の濃淡が残っているように見せる技術(ハーフトーン処理の一種)です。
[Error diffusion -Wikipedia(英語版)](https://en.wikipedia.org/wiki/Error_diffusion)

左の画像をちょうど半分の明るさをしきい値として2値化すると中央の画像のようになります

元記事を表示

個人開発記録 2024/04/24

# 目的

* とにかくやりきることが一番の目的
* 毎日発信することで、発信する習慣作り
* 個人開発をやりきることで、実績作り

# 開発するもの

X(旧Twitter)のパクリ

# 構成

* バックエンド
* python
* django REST framework
* DB
* postgreSQL
* フロントエンド
* React

# 本編

今日はフロント編
Reactの環境構築をしていく
参考は以下サイト

https://zenn.dev/web_tips/articles/abad1a544f3643

## npm/Node.jsのインストール

以下からnodeをインストール

https://nodejs.org/en/download

バージョン確認

“`bash
node –version
“`

npmフォルダを作成する
nodeをインストール直後は、これがないと後続のコマンドでエラーになる

“`bash
mkdir /c/Users/ユーザー名/AppData/Roaming/npm
“`

元記事を表示

疑似相関について考察する

先日、因果について書いたときに因果と相関は違うと言いましたが、厳密にいえば「因果のある相関」と「因果のない相関」というものがあります。

https://qiita.com/murasaki1994/items/267a200ad9075fbcc613

因果のある相関は例えば「アイスクリームの売上と気温の相関」が代表的だと思います。
しかし因果のない相関もあり例えば「溺死者数とアイスクリームの売上」が有名です。
因果のある相関を例にすれば明らかに原因は気温ですから「気温が上がるほどアイスクリームは売れる」という相関だけでなく因果まで一応分かります。
ですが、因果のない相関として例にすれば「アイスクリームを売らなくすれば溺死は減る」または「溺死が減ればアイスクリームが売れる」となるでしょうか?
なりませんね(まあもしかしたら溺死が減ると消費者が増えるのでアイスは売れるかもしれませんが、そういう話ではないです)。
こういった因果のない相関を一般的には疑似相関と言います。これは共通する第三の因子が影響して”見かけ上の相関”が発生しているため起こっていることになります。
例えば「アイスクリー

元記事を表示

年収が$50,000ドルを超えるかどうかを予測するモデルを構築する

# はじめに
Aidemyの「データ分析コース」を受講し、成果物として取り組んだ年収予測の分析過程記載させていただきました。

# 環境情報
Kaggle Notebook

# 概要紹介
今回の目的は、国勢調査データベースから抽出された、米国に住む個人に関する情報を使用し、年収が$50,000ドルを超えるかどうかを予測するモデルを構築することとなります。

# 使用したデータ
https://www.kaggle.com/datasets/mastmustu/income

###### 訓練データ
/kaggle/input/income/train.csv

###### テストデータ
/kaggle/input/income/test.csv

###### データのcolumn情報
age:年齢
workclass:職業クラス
fnlwgt:final weight(人口の推計値)
education:教育
educationnal-num:教育年数
marital-status:配偶者の有無
occupation:職業
relationship:関係(家族構成)
race:

元記事を表示

FastAPI x React のDockerチートシート

# ディレクトリ構成

“`
AppName
├─ back
│ └ Dockerfile
├─ front
│ └ Dockerfile
└ docker-compose.yaml
“`

## 事前準備
– requirements.txt

# back の Dockerfile

“`Dockerfile
FROM python:3.10.6
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD [“uvicorn”, “main:app”, “–reload”, “–host”, “0.0.0.0”, “–port”, “8000”]
“`

# front の Dockerfile

“`Dockerfile
FROM node:14
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
CMD [“npm”

元記事を表示

ラスターデータの外枠

# こんな図を作ります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/811209/5be428a6-1a83-633f-345f-4f5b1987f8db.png)
ググっても出てこなかったので作りました.↓

# ラスターデータの外枠をcartopy上で描写
全球-180, 180, -90, 90の範囲で
解像度5分(赤道で9km)の0と1で構成されたラスターデータを考えます
x軸方向に4320
y軸方向に2160
グリッド存在する空間だと思ってください
1の部分は東京の都市域を表す都市マスクです
全球のうち138-141E, 34-37Nの範囲をcartopyで描写します
描写された空間内に1で示された都市マスクの外枠をハイライト
“`python
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

one = 138
two = 141
three = 34
four =

元記事を表示

ローカル環境に量子プログラミングの実行環境を作ろう(Qiskit 1.0, Windows)

近頃、量子コンピュータについて聞くことも増えてきて、詳細までは分からないけれど面白そうと思う人も多いのではないでしょうか。
量子コンピュータに興味を持った方の中には、量子コンピュータの中で実行できる量子プログラミングを実際に書いてみたいと思う方もいると思います。
興味を持った方が簡単にWEBブラウザ上で量子プログラムを実行できる[Quamtum Lab](https://quantum.ibm.com/lab “Quamtum Lab”)を提供していたのですが、2024/5/15に提供を終了してしまうそうです[^1]。IBMが公開している量子プログラミングの[公式ドキュメント](https://docs.quantum.ibm.com/ “IBM Quamtum Documentation”)では、自分のパソコンの中に実行環境を用意することを推奨しており、その手順を紹介していますが、各人のパソコン環境は違うために環境構築でつまずいてしまう方もいるかもしれません。
この記事では、Windowsユーザーが誰でも量子プログラミングの環境構築を作れるように、様々な実行環境の構築手順をご紹介しま

元記事を表示

Lambda実行時のログ出力方法(Python)

# 概要
Lambda実行時のログ出力方法を簡単に記す。
ロググループの作成や紐づけ方法は記載しない。(気が乗れば追記するやも)

# 実行環境
Python3.11

“`python:lambda_function.py
import logging

# logger初期化
logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):
“””
– 基本的なlog出力

Args:
– event: Lambda event
– context: Lambda実行コンテキスト
Return:
なし
“””
logger.info(‘INFOログ’)
logger.warn(‘WARNINGログ’)
logger.error(‘ERRORログ’)
“`

元記事を表示

OTHERカテゴリの最新記事