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

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

PythonでWordをPDFに変換

Word文書をPDFに変換することで、文書がデバイス間で一貫してレンダリングされ、他のユーザーがコンテンツに不正な変更を加えるのを防ぐことができます。さらに、PDFに変換することで、文書を印刷する必要があるときに、印刷の正確さも保証されます。
この記事では、Pythonライブラリを使用してWord Doc/DocxをPDF形式に変換する方法について説明します。

## WordからPDFへの変換のためのPythonライブラリ
使用するPythonライブラリは [**Spire.Doc for Python**](https://www.e-iceblue.com/Introduce/doc-for-python.html) で、Word文書の作成、読み込み、編集、変換を簡単に行うことができます。使用するには、以下のpipコマンドを使ってVS Codeにインストールします。
“`
pip install Spire.Doc
“`

## PythonでWord Doc/DocxをPDFに変換する
変換を実現するには、単に.docまたは.docx文書をロードし、WordをPDF形式に変

元記事を表示

秘密の合言葉のためにランダムなひらがな文字列を作る

コマンド
“`bash
python -c “import random; print(”.join([chr(random.randint(ord(‘あ’), ord(‘ん’))) for _ in range(64)]))”
“`
出力例
“`
さてえぞゃくなぶんらなぇおぱょたどざへさぶみさぼむたとぴすろくをぎやっとぐおぴをいづぬぬづいぺぞぽがけつふばよわづしおっゐざやる
“`

元記事を表示

[Python]Huggingface Transformersを動かす

Google Colabを使って動かします。

今回は「bert-base-japanese-whole-word-masking」という東北大学が作成した日本語用のBERTベースのモデルを使用します。

行うタスクはマスク付きテキストに対してマスク部分の推測です。

“`
!pip install transformers
!pip install transformers[ja]
!pip install sentencepiece
from transformers import BertJapaneseTokenizer, AutoModelForMaskedLM
“`
“`
#トークナイザーを読み込む
tokenizer = BertJapaneseTokenizer.from_pretrained(‘cl-tohoku/bert-base-japanese-whole-word-masking’)
#モデルを読み込む
model = AutoModelForMaskedLM.from_pretrained(‘cl-tohoku/bert-base-japanese-w

元記事を表示

single cellで一通り解析

# single cell解析の概要
シングルセル解析は、細胞一つ一つを個別に調べることにより、生物学的な多様性と複雑性を理解するための強力な手段です。従来の分析では、細胞集団の平均的な特性しか捉えられず、細胞間の微妙な違いを区別できないところを、single cell解析ならば細胞の個性を詳細に研究することが可能になります。これにより、健康と病気のプロセスを新たな視点から理解し、より効果的な治療法の開発につながる可能性が広がっています。

# 環境、用いたデータ
* 環境
python3.12.2
[google colaboratory](https://colab.research.google.com/drive/18a4XtwON_4qh4bnS0CCu9vJcKeGEqCPT#scrollTo=WKAaAOy4BoIE)
コマンドライン引数に与えるユーザー名は適宜読み替えてください。

* データ
[GSE219130](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE219130)

また、このデータを用いた元

元記事を表示

ベクトル検索における5つの困難な問題と Cassandraによるその解決

## はじめに

本稿は、Jonathan Ellisによる以下の記事の自由な翻案です。

https://thenewstack.io/5-hard-problems-in-vector-search-and-how-cassandra-solves-them/

## ベクトル検索における5つの困難な問題と Cassandraによるその解決

ベクトル検索は、 生成 AI ツールの重要なコンポーネントです。ベクトル検索を用いることによって、LLMによって実現されるサービスに**最新**の情報、あるいは**カスタマイズされた**情報(またはその両方)をもたらすことができます。

近年、ベクトル検索機能を提供するプロダクトが爆発的に増加しており、その中からどれを選択するのが適切かという課題があります。

実際のところ、どうやって選択すれば良いでしょうか?

**技術的な選択肢を検討するときは、その技術領域固有の課題の理解が重要です。そうした理解の上に立って、それぞれの選択肢が、課題を解決するためにとっているアプローチを検討する必要があります。**

ここでは、ベクトル検索における、

元記事を表示

ModuleNotFoundError: No module named ‘_tkinter’ の時の対処法

macOSを使っている著者が、tkinterを使って遊ぼうと思った時に、タイトルのエラーにでくわしました。
めっちゃ簡潔に、このエラーを解決した手順を記しておきます。

“`bash
$ brew install tcl-tk
(中略)
“`
でインストールしたtinkerについて、以下のエラーが出ました。

“`bash
$ python3
Python 3.12.2 (main, Feb 6 2024, 20:19:44) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>>import tkinter
(中略)
ModuleNotFoundError: No module named ‘_tkinter’
“`

調べたところ、よくあるバージョンの食い違いエラーだったみたいです。
具体的にはPythonとtkinterとのバージョンの食い違いです。
“`bash
$ python3 —

元記事を表示

クラス分けの数理モデル:制約によるアプローチ

先日どこかの学校のクラス分けに色々と考慮されていない点があり始業式を中断したというニュースを見て、すごい違和感が生まれたので、これをITで解決するならどうアプローチするかなということで考えてみました。

## 問題の定義

生徒たちを異なるクラスに分ける際には、様々な要因を考慮する必要があります。そこで今回は、クラス間での能力の平均をできるだけ均一に保ちつつ、人数も均等に分配したい、というような場合。加えて、特定の生徒同士を同じクラスにしない、というような特別な制約が存在する場合について考えていきます。

## 問題の定式化

この問題を解決するために、制約付き最適化問題として定式化し、線形プログラミングを用いて解を求める方法を紹介します。使用するツールはPythonのPuLPライブラリで、線形最適化問題を解くために広く使用されています。

## 変数の設定

まず、各生徒がどのクラスに割り当てられるかを表す二値変数を定義します。これにより、生徒が特定のクラスに割り当てられている場合は1、そうでない場合は0となります。

## 目的関数

目的関数は、クラスごとのスコア合計の偏差を最小

元記事を表示

Dev Container + poetryで簡単環境構築

## 概要

### Dev Containerとは

VScodeの拡張機能。定義ファイルを準備するだけで開発環境がまるっと全部揃ったコンテナにアタッチできる。

### 何が嬉しい?

– 作業者間でOSからエディタの設定まで環境を共有できる
– 定義ファイルさえ用意すれば一瞬で開発環境が整う
– pyenvとかpoetryとかいちいちインストール不要
– VScodeの拡張機能もぽちぽち入れなくて良い

### 使い方

Dockerはインストールされてるとする。

1. `.devcontainer/devcontainer.json`に開発コンテナの設定を書く
2. コマンドパレットから`Reopen in Container`を選ぶと開発コンテナが立ち上がりアタッチされる

## 使用例

以下の環境を用意する例。

– Python3.12
– poetry
– VScode拡張機能もろもろ

### リポジトリ構成

“`
.
├── .devcontainer
│ ├── devcontainer.json
│ └── post-attach

元記事を表示

2025 年 3 月での files.upload API 廃止と移行方法について

こんにちは、Slack の[公式 SDK 開発](https://github.com/slackapi)と日本の Developer Relations を担当している瀬良 (@seratch) と申します 👋

この記事では、本日発表された [files.upload API](https://api.slack.com/methods/files.upload) の deprecation (非推奨) と移行方法について日本語で解説します。アナウンスメント(英語)は、以下のページでご確認いただけます。

https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay

## files.upload API 廃止までの流れ

[files.upload API](https://api.slack.com/methods/files.upload) は、2025 年春に廃止されます。それまでのスケジュールは以下の通りです。

1. 2024 年 5 月 8 日以降、新しく作成

元記事を表示

Pypy導入後に,VS CodeのrunのデフォルトpathがPypyになってしまう

時間がないので取り急ぎメモをします

Pypy導入後にVSコードのdefault interpreterが変わってしまうことがありました.

問題点としては,pypyにないライブラリを使うと推奨されるレコメンドが変わってしまうこと
右上のrunボタンでの実行などができなくなります(あたりまえ)

解決策としてはCtrl+Shift+Pでコマンドパレットを開いて,
python: Select interpreterを選択し
画像のようにRecommendedになっているPypyではなく,Globalのpythonを選択することで解決します.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3064963/775327f1-d9e2-44c2-bd5f-48b81f434a41.png)

元記事を表示

ABC348のPythonメモ(A~D)

トヨタ自動車プログラミングコンテスト2024#4(AtCoder Beginner Contest 348)の解答、思考まとめメモ残し!

https://atcoder.jp/contests/abc348

# A Penalty Kick
https://atcoder.jp/contests/abc348/tasks/abc348_a
## 問題概要
* 整数$N$が与えられるよ
* 3の倍数なら`”x”`,そうでないなら`”o”`を並べて出力してね

## 制約
* $1 \leq N \leq 100$

## 思考
* Fizz Buzzだ!!!
* 1~Nまでループで回して、3で割れるかどうかの判定をすれば良しですね

## 解答
“`python
N = int(input())

ans_L = []

for i in range(1, N + 1):
if i % 3 == 0:
ans_L.append(“x”)
else:
ans_L.append(“o”)

print(“”.join(ans))

元記事を表示

Pythonで理解する電気回路

メモ代わりに使っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/16b7f78b-ec73-83d1-512f-4e70054a2412.png)

https://www2-kawakami.ct.osakafu-u.ac.jp/lecture/
キャパシタとコイルの式
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/bf8b642f-9cbb-30e4-e057-cc094a031525.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/a0d

元記事を表示

脆弱性のあるサイトを作成してSQLインジェクションを体験してみる

# 目次
[#1.はじめに](#1はじめに)
[#2.前提環境](#2前提環境)
[#3.作成したサイト](#3作成したサイト)
[#4.実際に攻撃してみる](#4実際に攻撃してみる)
[#5.あとがき](#5あとがき)
[#6.参考サイト](#6参考サイト)

# 1.はじめに
情報処理試験の勉強をしているといろんな攻撃方法を学ぶことになります。
今回は数ある攻撃方法の中でも有名なSQLインジェクションを実際に体験してみました。

# 2.前提環境
python:3.12.2
django:5.0.4
postgresql:16.2

# 3.作成したサイト
SQLインジェクションの検証ができればいいので、ユーザIDを入力してPOSTするとユーザ名をテキストエリアに出力する簡易サイトを作成しました。

①ユーザIDを入力して送信するボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3324575/926c73fa-83dc-df31-27b3-6373c0943c4f.png

元記事を表示

Pythonで「ファイルの作成と削除」の動作を確認してみた

# 概要

Pythonで「ファイルの作成と削除」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/file/index9.html

# 実装

以下のファイルを作成しました。
“`sample1.py
import os
f = open(‘./test/user.txt’, ‘w’)
f.close()
“`
“`sample2.py
import os
os.remove(‘./test/user.txt’)
“`

以下のコマンドを実行しました。
“`
$ mkdir test
$ python3 sample1.py
$ ls test/
user.txt
$ python3 sample2.py
$ ls test/
“`

# まとめ

何かの役に立てばと。

元記事を表示

DartとJavaScriptでPythonやRubyみたいに%書式(sprintf)を使えるようにしましょう

# はじめに

PythonとRubyを使っているみんなさん、いつも「%書式」を使っていますか?私はいつも使っています。これは元々C言語の機能で、printfとsprintfで文字列を出力する時に使われていたが、その後色んな言語で同じように搭載されています。

PHPなどではsprintfという関数の形で使えますが、文法の一部として扱えるPythonとRubyの方が直感的で便利です。

勿論、PythonとRubyは%書式以外に他の書式の機能がありますね。[前にもPythonで使える書式を比較する記事を書きました。](https://qiita.com/phyblas/items/0a122fe4a18a18a83050)それぞれ特徴があって違いがあります。**色んな言語共通で使える**のは%書式の長所です。

ただし残念ながらJavaScriptはこんな便利な機能を持っていません。関数という使いたいとしても追加パッケージをインストールする必要があります。

最初にJavaScriptを勉強した時に不便を感じて、ないなら自分で作ればいいよね、と思って結局頑張って実装してみました。

元記事を表示

お手軽な画像の多クラス分類(データセット収集、学習、推論実行まで)

自前のデータセットを使って画像のクラス分類をしたいとき、学習済みモデルを使った転移学習が一番手軽かと思います。
中でもKerasは最もコード量が少なく済むし分かりやすいものです。

この記事は、機械学習のプロジェクトをまだ実装したことが無い、かつチュートリアルを読みたくない人のためのガイドです。

また、データセット収集、学習、推論実行 をそれぞれスクリプトに実装したので、新たなプロジェクトの土台に使えるかもしれません。
colabは使用せずに完全にローカルでやります

完全なコードはこちら

https://github.com/kobayashi-deepinsight/tensorflow-easy-image-classification/tree/master

> 本来は次のチュートリアルとガイドをなぞることで、「画像の多クラス分類」を実装できるようになります。

* はじめてのニューラルネットワーク:分類問題の初歩
* https://www.tensorflow.org/tutorials/keras/classification?hl=ja
* モデルの保存と

元記事を表示

tkinter触ってみた。

# はじめに
Tkinterを用いてタバタトレーニング用のタイマーを作成しました。
記録を残したいので投稿してみます。(初投稿)
※ 完全に個人利用を目的としております。

## どうして作る?
既存のアプリはすでに多く出回っていますが、
– PC画面で大きな文字を表示したい
– 機能を最小限にしたい
– カウントダウン終了時などに、自分の好みの音声ファイルを再生したい

ので、作ってみます。

## 期待する機能
– ボタンを押すとタイマーが始動
– 20秒/10秒のカウントダウンを1セットとし、計8セット繰り返す
– 20秒のカウントダウンの始めと終わりにそれぞれ音声ファイルを再生する

GUIはボタンとテキスト表示だけあればシンプルで見やすいのではと思ったので、それだけに絞りました。

# 開発
## 開発環境
– windows11
– Anaconda Navigator
python 3.9.18
tk 8.6.12
– Visual Studio Code

:::note warn
音声ファイルを再生するために、winsoundライブラリを用いています。
Windows

元記事を表示

VSCodeでpythonのLinter+Formatterを設定する

## はじめに

今回は以下を設定する手順をご紹介します!
– Linter
– [flake8](https://github.com/PyCQA/flake8)
– [mypy](https://github.com/python/mypy)
– Formatter
– [autopep8](https://github.com/hhatto/autopep8)

また今回紹介する設定では、ローカルでの`pip install`は一切不要となっていてそこも気に入っております!

## 0. pythonの設定
pythonの拡張をインストールしておいてください。

https://marketplace.visualstudio.com/items?itemName=ms-python.python

## 1. Linterの設定
VSCの拡張から「flake8」「Mypy Type Checker」をインストールします。

https://marketplace.visualstudio.com/items?itemName=ms-python.flak

元記事を表示

WordCloudで日本語文字が豆腐になる問題を解決する

# TL;DR

WordCloudで日本語が豆腐になる場合には `WordCloud(font_path=”/path/to/my-font.ttf”)` というように `font_path` を指定する。

# 問題

WordCloudを使用して日本語の単語をプロットしようとすると、豆腐(文字化け状態)になることがある。作り込んだ環境では特に意識せずとも正しく表示されるかもしれないが、Google Colab利用する場合など新たに立ち上げた環境においてはよく発生するトラブルである。

たとえばColab上でこのコードを実行すると、日本語の文字は豆腐になる。

“`python:
from wordcloud import WordCloud

wordcloud = WordCloud().generate(” “.join([“hoge”, “fuga”, “piyo”, “ほげ”, “ふが”, “ぴよ”])
“`

![wc_bad.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12768

元記事を表示

OpenAI Dalle-3 APIを使った画像生成Pythonサンプル

# 背景
– Dalle-3をPython APIで呼び出す
– 出力方式がurlとb64_jsonがあるので両方やり方メモ

https://platform.openai.com/docs/api-reference/images

# response_format = url

– httpで画像にアクセスできるurlがかえります
– ただし、1時間しか有効ではないので注意

“`py
from openai import OpenAI

client = OpenAI()
res = client.images.generate(
model=”dall-e-3″,
prompt=”a cat in the park”,
size=”1024×1024″,
quality=”hd”,
response_format=”url”,
style=”vivid”
)
return res.data[0].url
“`

# response_format = b64_json

– 指定したpathにpng形式で保存します
– `

元記事を表示

OTHERカテゴリの最新記事