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

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

PythonでPDFをTIFFに、またはTIFFをPDFに変換する

PDFは、デジタル文書管理の分野で一般的に使用されているフォーマットの1つで、主にテキスト、画像、表、リンクなどを含む複雑な文書の保存と共有に使用されます。一方、TIFF (Tagged Image File Format) は、画像処理の分野で一般的に使用され、主に高品質の画像ファイルの保存に使用されます。
実際には、さまざまなシナリオに適応するために、PDFファイルをTIFF画像に変換したり、TIFFをPDFに変換したりする必要がある場合があります。この記事では、PDFとTIFFフォーマットの相互変換を実現するためにPythonを使用する方法を紹介します。
* [PythonでPDFファイルを複数ページのTIFF画像に変換する](#pythonでpdfファイルを複数ページのtiff画像に変換する)
* [PythonでTIFF画像をPDFファイルに変換する](#pythonでtiff画像をpdfファイルに変換する)

## 必要なPythonライブラリ
* [**Spire.PDF for Python**](https://www.e-iceblue.com/Introduce/

元記事を表示

【真偽値評価】色々な型のものを==とisで比較してみた

## 目次
– [はじめに](#はじめに)
– [結果](#結果)
– [イミュータブル](#イミュータブル)
– [ミュータブル](#ミュータブル)
– [boolとNone](#boolとnone)
– [おまけ:インスタンスと関数](#おまけインスタンスと関数)
– [おまけ2:namedtuple](#おまけ2namedtuple)
– [おまけ3:計算を含む整数](#おまけ3計算を含む整数)
– [おまけ4:copyモジュールについて](#おまけ4copyモジュールについて)
– [おまけ5:文字列の結合](#おまけ5文字列の結合)
– [なぜ型によって違いがあるのか](#なぜ型によって違いがあるのか)
– [まとめ](#まとめ)
– [最後に](#最後に)

## はじめに
 Pythonの真偽値評価には“`==“`と“`is“`がありますよね。筆者はこれらの使い分けとして、“`None“`には“`is“`を使う程度しかしておらず、正直よくわかっていませんでした。そこで、色々な型を様々な操作と組み合わせつつ“

元記事を表示

Databricks extension for Visual Studio Code v2 の環境構築方法

## 概要

Databricks extension for Visual Studio Code v2 の環境構築方法を紹介します。Databricks extension for Visual Studio Code には、新バージョンであるバージョン 2 系統がリリースされました。明示的に v2 とされていませんが、バージョン 1 系統との差異があるため、ここでは v2 として扱います。

バージョン 1 系統を継続的に利用したい場合には、Visual Studio Code 上で過去のバージョンをインストールすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/b3715cec-46e1-2c72-c8d9-c91acd11e198.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e058060e-93a7-7c25-478c-

元記事を表示

gradio はじめてのWEB UI作成 (入門者)

# gradio入門

## はじめてのWEB UI作成

### gradioをインストール

“`jsx
pip install gradio
“`

### シンプルなWEB UIを作成して起動

( 名前を入力して名前へのあいさつを出力するWEB UI )

“`jsx
import gradio as gr

# あいさつの関数
def greet(name):
return “Hello ” + name + “!”

# Interfaceの作成
demo = gr.Interface(
fn=greet,
inputs=”text”,
outputs=”text”
)

# 起動
demo.launch()
“`

実行

![image 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682370/97fc09fa-b718-41d6-5291-bc7741626ca3.png)

### Interface

`interface`

元記事を表示

Databricks extension for Visual Studio Code にて Databricks Workspace への同期先を Git フォルダにする方法

## 概要

Databricks extension for Visual Studio Code にて Databricks Workspace への同期先を Git フォルダにする暫定対応を共有します。2024月11月12日時点では、同期先を Git フォルダに設定する方法がなかったため、既存のフォルダを削除して同名の Git フォルダを設定することで対応できました。拡張機能に Git フォルダにする機能がつく可能性もあるため、本方法は暫定対応として捉えてください。

Git フォルダに変更する理由は、ルートディレクトリを Python のパスに登録するためです。

> ルート ディレクトリはパスに自動的に追加されるため、Git フォルダーのルート ディレクトリからインポートするときに、パスを手動で追加する必要はありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c2c09024-ec1a-ab71-49de-67659d6bf614.png)

引用元:[G

元記事を表示

paizaラーニング問題集「マップの判定・縦横」を解き、改善した話

▼問題文のURL

https://paiza.jp/works/mondai/a_rank_level_up_problems/a_rank_snake_map_boss

▼改善の概要

[改善前]
マップの最初の行,最後の行,それ以外の行の3つに分け、さらに左端,右端,それ以外の3つに分けてコードを書きました。場合分け9つ(3×3)、コードは43行でした。

[改善後]
場合分け9つは冗長であったため、改善を行いました。結果、場合分けは上下左右の4つ、コードは23行で書くことができました。

1. 左の場合は、任意のマップの座標(j,i)において、iが0またはi-1が#のとき、題意の条件を満たすと考えます。右の場合は、iがW-1またはi+1が#のとき、題意の条件を満たすと考えます。上下も同様に考えます。

2. 上下左右すべて題意の条件を満たした場合は、マップの座標(j,i)を出力します。

▼改善前の私のコード

“`py
H,W = map(int,input().split())

A = [list(input()) for i in range(H)]

for j

元記事を表示

特定のフォルダ下にある全ての動画ファイル再起的に探索し再生時間を計測する

## 特定のフォルダ下にある全ての動画ファイル再起的に探索し再生時間を計測する

タイトルの通り、そう再生時間を示すことができるやつ。ffmpegが必要。

“`python:main.py

import os
import subprocess
from tqdm import tqdm

def get_video_duration_ffprobe(video_path):
“””FFprobeを使用して動画の再生時間を取得(秒単位)”””
try:
result = subprocess.run(
[“ffprobe”, “-v”, “error”, “-show_entries”,
“format=duration”, “-of”,
“default=noprint_wrappers=1:nokey=1”, video_path],
stdout=subprocess.PIPE,
stderr=subprocess.P

元記事を表示

Excel in Pythonを使ってみた②

### ■エクセルをPythonを使って操作してみる

### PythonでExcelを操作するための環境構築方法
Pythonは、公式サイトからインストールして環境構築ができます。
公式サイトからPythonをインストールする場合の環境構築方法は、以下の通りです。

⓵Pythonの公式サイトにアクセスする
⓶Pythonの最新版パッケージをダウンロードする
⓷ダウンロードしたPythonをウィザード(表示される質問に答えながら設定を進める方法)に従って
インストールする
⓸コマンドラインツールからPythonが正常にインストールされているかどうかを確認する

>https://www.python.org/downloads/
上記ダウンロードサイトです。

![スクリーンショット 2024-11-08 165949.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/94134267-e785-b6cf-7399-2f7df9e493ea.png)

元記事を表示

`pandas.Series.unique`は`pandas.Series`ではなくnumpy arrayを返す

# 環境
* pandas 2.0.3
* Python 3.12.4

# 内容

`pandas.Series`オブジェクトから、ソートされた一意な値のlistを取得する関数を書きました。

“`python
def get_sorted_unique_values(ser: pandas.Series) -> list[float]:
ser.unique().sort_values().to_list()
“`

実行すると、以下のエラーが発生しました。

“`
E AttributeError: ‘numpy.ndarray’ object has no attribute ‘sort_values’
“`

[pandas.Series.unique](https://pandas.pydata.org/docs/reference/api/pandas.Series.unique.html) は`pandas.Sereis`を返すことを期待していましたが、実際は numpy array を返しました。

>The unique values

元記事を表示

Pythonモジュールとしてのdigdagの型付け

## 概要

[Digdag](https://www.digdag.io/) はバッチ処理のワークフローを定義して定期的に実行するなどのタスク管理ツール[^1].

[^1]: つまりは cron をより高級にしたようなもの.

公式ドキュメント:

https://docs.digdag.io/

具体的な処理はシェルコマンドや Python や Ruby などで記述されたスクリプトを呼び出すことで行うが,本記事では Python ライブラリとしての `digdag` の型付けについてまとめる.

## digdag の使い方

Digdag(アプリケーション)で Python を使用する際の基本的な処理は以下の2つ.

– Digdag からスクリプトを呼び出す
– Python関数の引数は,`*.dig` ファイル内で定義された変数や組み込み変数で同名のものが自動的に渡される
– Python からデータを渡す
– `digdag.env.store({‘key’: value})` で辞書に値を追加する

他に子タスクを生成する機能などがある(参考: https://

元記事を表示

macOS Sequoia へ任意のバージョンのPythonをインストールする方法

## この記事でできること
– macOS用パッケージマネージャであるHomebrewのインストール
– pythonを任意のバージョンを指定してインストール
– pythonのバージョン管理パッケージであるpyenvのインストール

## 下準備
まずはじめに、MacOS用パッケージマネージャのHomebrewのインストールを行います。
#### 手順
・ターミナルを開く
・以下のコマンドを入力
~~~
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh
~~~
・バージョン確認
~~~
brew -v
~~~
・無事にインストールできている場合は、以下のようにバージョンが出るはず
~~~
-> Homebrew 4.4.5
~~~

・これでHomebrewのインストールが完了

## pythonのインストール
pythonのバージョンを指定してインストールします

### 手順
・インストールしたいバージョンをチェック
・以下のコマンド

元記事を表示

Pythonのsysモジュールでよく使われるメソッドなど

## `sys`モジュールについて
`sys`モジュールはPythonの標準ライブラリの一つで、Pythonのインタプリタや実行環境に関する情報を扱う機能を提供しています。
システムに関する操作や情報取得、インタプリタの制御などでよく使われます。

## よく使われる`sys`モジュールのプロパティ・メソッド
**1. `sys.argv`:コマンドライン引数の取得**
* `argv`は、スクリプトが実行されるときにコマンドライン引数をリストとして取得するためのプロパティです
* `sys.argv[0]`にはスクリプト名が入り、引数はそのあとに続きます
* 例:
“`Python
# sys_learn.py
import sys
print(f”スクリプト名:{sys.argv[0]}”)
print(f”引数:{sys.argv[1:]}”)
“`
このように定義したsys_learn.pyをコマンドラインで実行してみましょう。sampleという引数を一つ指定してみます。
“`cmd
> python sys_learn.py sample
“`
以下のような出力が

元記事を表示

python 3.13t GIL無効化設定 – ②CPU-Bound実行時間計測

# はじめに
2024年10月、GIL無効化設定が可能のpython 3.13が正式にリリースされました。
GIL有効・無効により、CPU-Bound処理の実行時間を計測してみました。

## 環境
– python: 3.13
python3.13をinstallした後、python.exeとpython3.13t.exeが作成されます。後者はfree-threadingのGIL無効版です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470230/eda561df-5e83-b854-fb5d-ad0f78059ef2.png)
– OS: windows 11
– other: Powershell

# Single-thread
## CPU-Bound
### Code(single_thread_cpu.py 疑似CPU-Bound)

“`python
from threading import Thread

COUNT = 5000000
def coun

元記事を表示

python 3.13t GIL無効化設定 – ①CPU-Bound並行実行

# はじめに
2024年10月、GIL無効化設定が可能のpython 3.13が正式にリリースされました。
GIL有効・無効により、CPU-Bound・IO-Bound処理の動作を検証してみました。

## 環境
– python: 3.13
python3.13をinstallした後、python.exeとpython3.13t.exeが作成されます。後者はfree-threadingのGIL無効版です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470230/eda561df-5e83-b854-fb5d-ad0f78059ef2.png)
– OS: windows 11
– other: Powershell

# 並行実行(Concurrency)
## CPU-Bound
### Code(multi_threads_cpu_print.py 疑似CPU-Bound)

“`python
from threading import Thread
import

元記事を表示

形態素解析によるアンケートの結果分類

# アンケートをざっくりと分類する
**Pythonで形態素解析をMeCabライブラリを用いて実施する際の注意事項**

1.MeCabライブラリのインストール

2.フォルダ C:\Users\ユーザー名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\lib\site-packages にある『 libmecab.dll 』を
C:\Users\ユーザー名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\MeCab フォルダにコピーする.

3.辞書をインストールする
“`
pip install unidic-lite
“`
4.プロットの日本語表示用ライブラリをインストールする
“`
pip install japanize_mat

元記事を表示

【超簡単】PythonでThreads APIを使って遊んでみた

# はじめに
この記事は、ThreadsのAPIをちょっと触ってみるかーっていう記事です。。。
過去に[Twitter(現X)のAPIに関する記事](https://qiita.com/Naoya_pro/items/f1bdba5260bda054f6d2)を書いたのですが、仕様変更、料金プラン変更によって、個人利用が難しくなってしまった気がしています

そこで、Threads!!
Threadsは、個人的にはXと大して違わないサービスだし、APIが見たところ無料です!
熱い!激アツ!

ってことで、ざっくり使用方法紹介していきます

# リンク集
> [Threads](https://www.threads.net)
> [Threads API ドキュメント](https://developers.facebook.com/docs/threads/)
> [Github](https://github.com/naoya25/threads-bot)

# API利用までの流れ
基本的には、[ドキュメントのGet Started](https://developers.fac

元記事を表示

paizaラーニングスキルチェック「B108:観覧車の稼働状況」を解いてみた結果

▼問題

以下のリンクを「B108:観覧車の稼働状況」で検索してください

https://paiza.jp/challenges/ranks/b/info

▼結果

https://paiza.jp/challenges/share/TZScqJYJOO8vhFT_y8ogYz5BiYFQ2loBE4-eq_NYwVM?source=social

元記事を表示

DJProject_備忘録_4

## 2024-11-12
– PythonのPlayerのUdonSharp化
– QRCodeModePlayerの変換
– 確認
– 修正
– 確認

– QRCodeCharacterCountPlayer
の変換
– 確認
– 修正

– QRCodeBitConversionPlayerの変換
– UdonSharp用に簡易的な独自のNumpy(RinaNumpy)をimportする形で変換。
– RinaNumpyに新しいメソッドを追加。

元記事を表示

言語処理100本ノック【NLP 00 〜 09】

# はじめに
自然言語処理を専門として研究に励んでいる大学院生なのですが,[言語処理100本ノック](https://nlp100.github.io/ja/)をやったことがなかったので,アドベントカレンダに合わせて取り組んでみることにしました.
簡単な説明を付した記事を投稿予定ですが,どこまで続くかは忙しさによるのであまり期待しないでください……

さて,今回は00〜09です.(使用言語Python)

# 00. 文字列の逆順
文字列”stressed”の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ.

“`python
input_str = ‘stressed’
print(input_str[::-1])
“`

Pythonの基本操作の一つであるスライス操作です.
`:`で区切られ,1つ目の値で開始インデックス,2つ目の値で終了インデックス,3つ目の値で増分を指定します.
今回であれば,3つ目の値のみ指定され,`-1`だけ増加,即ち,リバース操作に該当します.

## 01. 「パタトクカシーー」
「パタトクカシーー」という文字列の1,3,5,7文字目を取

元記事を表示

『モデルベース深層学習と深層展開』読み会レポート#11

$\def\bm{\boldsymbol}$

# 概要
– オンラインで開催している[『モデルベース深層学習と深層展開』読み会](https://majime-ni-study.connpass.com/event/)で得られた知見や気づきをメモしていく
– ついでに、中身の理解がてらJuliaサンプルコードをPythonに書き直したコードを晒していく
– 自動微分ライブラリにはJAXを使用する

# 第11回
## 大まかな内容
– ニューラル微分方程式を深層展開で学習
– 変分問題を解くのに深層展開を活用する方法
– 変分問題のいち応用先の最適制御問題に深層展開を使う方法
– 確率微分方程式の中のパラメータを深層展開で獲得する方法
## 議論になったこと
### 6.2.2節 あたり
– ”ユニバーサル性”ってのはニューラルネットの万能近似性を指してる?
– ->たぶんそう
– サンプルプログラム眺めながら
– $\bm{x}$は何故わざわざ2次元にした上で1つ目の変数しか使ってない?
– 1次元だとNNの表現力が落ちるから?

元記事を表示

OTHERカテゴリの最新記事