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

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

PythonでNI-DAQの利用2

NI-DAQのPythonプログラミングの覚えとして記載します。

NI-DAQのPCへのインストールはこちらを参照してください。
参考1:[PythonでNI-DAQの利用 #Python – Qiita](https://qiita.com/Gyutan/items/1d0caa638c01a52c289d)

Pythonで凝ったDAQの使い方をするときは、基本的にはLabVIEWのプログラムと同じようにコードを書く必要があります。(LabVIEWでもDAQをちょっと凝った使い方をしようとするといろいろと設定が必要になります。)

PythonでDAQのプログラミングには、こちらのドキュメントが参考になります。
参考2:[NI-DAQmxにおける10種類の関数の習得および多くのデータ集録アプリケーションに対処できる処理について](https://www.ni.com/ja/support/documentation/supplemental/06/learn-10-functions-in-ni-daqmx-and-handle-80-percent-of-your-dat.ht

元記事を表示

Python : FlaskのsessionのKeyValueが、セッションCookieにどのように格納されているのかを調べてみた

# はじめに

PythonのFlaskでWebサーバを作る際に、Webブラウザ等のWebクライアントでセッション維持させるにはFlaskのsessionモジュールが使えます。Pythonのソース内でsessionモジュールにKeyValueを渡してあげると、各クライアントのWebブラウザ上でそれらのKeyValueがセッションCookieによって維持されます。

しかしながらFlaskのsessionモジュールを使ってWebサーバを単に実装しただけでは、sessionモジュールを介して作成したKeyValueが本当にセッションCookieに格納されているのかが筆者はよくわかりませんでした。ググってWeb情報を調査しても、多くはWebサーバ側の挙動ばかりが書かれており、疑問を解決してくれるものがすぐに見つからず…

そこで実際にWebクライアント側でセッションCookieを解読して、Flaskのsessionモジュールで作成したKeyValueが含まれていることを確認してみました。本記事ではその内容を共有します。

# 動作確認した各ツールのバージョン

“`
$ python

元記事を表示

MNISTで文字判定プログラムを作ってCNNの基本を知る

# 概要

– 手書きの0~9の数字を判定するプログラムを実装して、画像分類するCNNモデルの概略をつかむ
– データセットはmnistを使う
– CNNモデルはkerasで作成する

### 補足

– 勉強中の知識のアウトプットなので間違いがあるかもしれません。ご承知おきください。

# 環境等

– Google Colab
– keras version: 2.15.0

## 実装

– 学習して数字を判定するまでの大まかな流れ
– step1 : 学習に使うデータの準備
– step2 : 学習
– step3 : 推論(学習で得られたモデルで判定する)

### step1 学習に使うデータの準備

#### mnistからデータセットをダウンロードする

– `keras.load_data`でmnistのデータセットをダウンロードする
– ダウンロードしたデータセットは トレーニング用とバリデーション用に分かれている
– データセットは 画像データ(x)と 正解ラベル(y)を持つ。正解ラベルは画像が示す数字である。

“`python
imp

元記事を表示

【Docker環境構築】Ubuntu 20.04 + Python 3.10

## 背景
Ubuntu20.04では、通常のPythonインストールだと3.8が入ってしまい3.10のインストールは少し工夫する必要がある。

Ubuntu20.04とPython3.10の本番環境用にDockerを用いてローカル開発環境を構築する。

## 環境
Docekr Desctop
Ubuntu 20.04
Python 3.10

## ディレクトリ構成
“`
.
├── docker
│ ├── docker-compose.yml
│ ├── Dockerfile
│ └── requirements.txt
└── src
└── main.py
“`

### dockerフォルダ
Docker起動用のファイルが格納されている。

### srcフォルダ
プロジェクトの実行ファイルを格納する。
Dockerコンテナ起動時にはsrcフォルダ内が参照される。

## docker-compose.yml

“`docker-compose.yml
version: “3.0”

services:
python:
image:

元記事を表示

plotly.express.data package

お試し用のDataFrameはPlotlyのビルトインデータが便利。

“`python
import plotly.express as px

# ギャップマインダー
df = px.data.gapminder()
# アヤメのデータ
df = px.data.iris()

“`
他にも何種類かあるので、詳しくはAPI Referenceを参照。

https://plotly.com/python-api-reference/generated/plotly.express.data.html

元記事を表示

昔模様を作るプログラムを作った話

※結構昔に作ったプログラムで下手なのでご容赦ください。
# フラワーオブライフ
ある日(3年以上前)にYouTubeで面白い模様を見たのです。
紹介として「黄金比と円周率を掛け合わせた幾何学模様、それがフラワーオブライフ」と都市伝説系YouTubeで見て、その図形は神社の狛犬とか他世界中に使われているらしく、最近だと日〇レの夜11時のニュースのOPで見れます。
## プログラム
円が見た感じ円の中心から正六角形の頂点に新しく中心を作り円を作るという感じの図形になっています。
“`Python3
import numpy as np
import matplotlib.pyplot as plt

def en(theta, cx, cy):
x = np.array([])
y = np.array([])
for i in range(len(cx)):
x = np.append(x, np.cos(theta)+cx[i])
y = np.append(y, np.sin(theta)+cy[i])
lin

元記事を表示

はじめてのPython(基礎文法)

# はじめに
本記事では、プログラミング言語「Python」の基本的な書き方を紹介します。
Python初学者の方、基礎文法をど忘れしちゃった方等に読んでもらえたらなと思います。
# 環境
– プログラミング言語
– Python 3.12.3
:::note info
コマンドプロンプトにて以下コマンドを打つとバージョンを確認できる
:::
“`
python -V
“`
– 統合開発環境
– Jupyter lab(使用ブラウザはCrome)
# 基礎文法
## 四則演算
“`
#足し算
1+2

#出力結果:3

#引き算
3-1

#出力結果:2

#掛け算
2*3

#出力結果:6

#割り算
8/3

#出力結果:2.6666666666666665

#割り算(整数)
8//3

#出力結果:2

#割り算(整数で割った余り)
8%3

#出力結果:2
“`
:::note info
「#」 につづいて入力することでコメント(実行結果に影響を与えない文字)を書ける
:::
## 文字列
“`
#ダブルクォーテーション(もしくはシングルクォーテーシ

元記事を表示

EC2にVOICEVOXをインストールしてpythonから音声ファイルを作る

## はじめに
Amazon Linux 2023にVOICEVOXをインストールしたときのメモ

## VOICEVOXのダウンロード
公式サイトからLinux版、対応モードCPU、Zip版を選択してダウンロード
落としたときのファイル名称は voicevox-linux-cpu-0.18.1.tar.gz
ファイル名称は18世代って意味だっけ

## 解凍
どこでもいいと思うけど /root直下に格納してtarで解凍する
image.png

## 実行
Windows版もrun.exeだったし、これでしょと思って実行してみる。
image.pngCorneCherryのキーマップを表示させるアプリ作ったヨ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71846/94732a1a-6d94-3cc7-c681-aaab931caf84.png)
初めましての方は初めまして、そうでない方も始めまして。
この記事は自作分割キーボード[Corne Cherry](https://shop.yushakobo.jp/products/corne-cherry-v3)を使用している方、
もしくは購入を考えている方に向けに書いています。
このアプリがレイヤーを覚えるまでの助けになってくれるはず(´・ω・`)

## アプリを作った理由
[Corne Cherry](https://shop.yushakobo.jp/products/corne-cherry-v3)は通常のキーボードの**40%程度**のキーのみで構成されています。
なので**QWERTYUIOP**から上の数字キーやファンクションキーなどが物理的に存在しません。
![CorneCherryV3](https://shop.yusha

元記事を表示

YOLOで追跡してみる

ようやく花粉症のピークも過ぎたでしょうか。連休明けまで気が抜けない方もいらっしゃるかと思います。最近は黄砂も影響するでしょうか。花粉や黄砂の密度の薄いところで暮したいものです。という訳でもないのですが、今回は物体の追跡です。

# 物体の追跡とは
ある画像の中で注目したい物体の位置を特定するのは、物体検知など定番の技術です。
次に動画を考えたときに、次のフレームでも同じことをして、さらに前のフレームと検知したものが同一か判断することが求められます。

# 使うだけならそれほど困らない
追跡機能を持つYOLOを試してみることにしました。ずいぶん昔に試したころは物体検出までしかできない時代だったのですが、しばらく見ていない間にずいぶん進化しています。同時に使い勝手も良くなったようです。

https://docs.ultralytics.com/ja/modes/track/

ソースは[こちら](https://github.com/ishikawakouji/yolov8track/tree/main)
この中の `track_video_write.py`が目的のものになります。あと

元記事を表示

VSCode で isort, Black, flake8 を自動で実行する機能が動作しない!!

# TL;DR;
– `setting.json` で `Unknown Configuration Setting` と言われて,自動でコードを整形してくれなかった.
– 拡張機能で `my-python` と検索し, `isort`, `Black Formatter`, `Flake8` を導入する.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534163/de7ea22b-801b-45c8-fe46-be3cdc6dd73c.png)

# 問題
– `isort`, `Black Formatter`, `Flake8` を自動で実行してくれる拡張機能を `VSCode` に入れたかった.
– 何故か, `setting.json` で `Unknown Configuration Setting` と言われて,自動でコードを整形してくれなかった.
![image.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

何も考えずにUbuntu環境で最速でPDFから複数毎の画像をファイルを生成する (Pdftoppm)

複数ページから構成されるPDFを入力として、出力としてページ毎のPDFを画像として出力したい場合があることがある。

Pdftoppm といコマンドを利用すると一発でいけるみたい。このプログラムはPDF
処理用の関連ユーティリティの`poppler-utils`の中に含まれているみたい。

### Pdftoppm のインストール方法
“`bash
$ sudo apt install poppler-utils -y
$ which pdftoppm
/usr/bin/pdftoppm ★ちゃんと入っている
“`
### 使い方
一番、使うパタンがPDF(複数ページから構成される)をページ毎にpngファイルに変換する。

“`bash
$ pdftoppm -png {入力PDF} {出力時のファイルのプレフィックス名}
“`
例)
“`bash
$ pdftoppm -png sample_01.pdf tmp
$ ls tmp*
tmp-1.png ★ tmpがプレフィックス
tmp-2.png ★ tmpがプレフィックス
“`

参考URL:
[Pdftoppm、P

元記事を表示

フレミングの左手の法則と磁束密度の分布

# はじめに
電動機が回転する理由は、フレミングの左手の法則によって説明することができる。フレミングの左手の法則は、平等磁場空間に電流を流した導体を垂直方向に置くと電磁気力が生じるというものである。その方向は、磁極と導体棒が作る合成磁場の密度が大きいところから、小さいところに向けて移動する方向である。今回は、そのことについて、Pythonを用いて調査することを目的とする。

# フレミングの左手の法則とは
磁束密度$\textbf{B}$平等磁界中に垂直方向に長さ$l$で電流$\textbf{I}$が流れている導体棒を置くと、以下のような力$\textbf{F}$が生じる。
“`math
\textbf{F}=(\textbf{I}\times\textbf{B})l
“`

この力の働く方向は、磁束密度が密から疎に行く向きである。
これをPythonプログラムを用いて説明する。

まず、導体棒に電流が流れた場合、右ネジの法則により、以下のような磁場が生じる。ただし、導体棒からの距離を$r$とする。

“`math
H=\frac{I}{2\pi r}
“`

これをプログラム

元記事を表示

PythonでテキストファイルをPDFドキュメントに変換し、PDFページにテキストを描画する

テキストファイルは、軽量で編集しやすいという利点があるため、日常のテキスト記録やデータ交換によく使用されます。一方、PDFドキュメントは、高忠実度、フォーマットの安定性、優れた読書体験を備えているため、正式なレポートや文献の公開など、さまざまな場面で好まれています。テキストファイルをPDFに変換し、PDFにテキストを正確に描画することで、コンテンツの標準的な表示とパーソナライズされたレイアウトの両立を図り、ドキュメント形式に対するさまざまな場面の特定の要件を満たすことができます。この記事では、Pythonを使用して**TXTファイルからPDFドキュメントへの変換**を簡単かつ迅速に行う方法を紹介します。これにより、さまざまなドキュメント処理のニーズを満たすことができます。

– **[Pythonを使用してテキストファイルを読み込んでPDFドキュメントに変換する](#pythonを使用してテキストファイルを読み込んでpdfドキュメントに変換する)**


この記事で使用する方法には、[Spire.PDF for Python](https://www.e-iceblue.com/

元記事を表示

[機械学習]人物の画像から、その人の世代を予測してみる!

# はじめに
はじめまして。

学生時代にC言語を学び、仕事ではオブジェクト指向の言語でアプリを作成していたのですが、新しい知識や技術を知らんといけんかなーと常々思っていました。
最近よく耳にするようになった「AI」とはなんぞやということで一念発起。
オンラインスクール[「Aidemy」](https://aidemy.net/)の「AIアプリ開発講座」に通い始めました。

このブログはAidemy Premiumの講座カリキュラムの一環である、受講修了条件を満たすために作成した成果物について記載しています。

## 目次
[- `何の学習モデルを作成するか`](#何の学習モデルを作成するか)
[- `作成環境`](#作成環境)
[- `学習データの準備`](#学習データの準備)
[- `機械学習モデルの作成webアプリの作成`](#機械学習モデルの作成webアプリの作成)
 [-`1. GoogleCoraboratoryにて学習モデルの作成`](#1googlecoraboratoryにて学習モデルの作成)
  -[`1.1 学習データのダウンロード`](#11-学習データのダウン

元記事を表示

PythonでPDFファイルのページ数を取得する

PDF文書を処理したり印刷したりする前に、まずその文書が何ページあるかを知る必要があることがある。Adobe Acrobatのようなツールを使ってページ数を表示することもできますが、プログラマーにとっては、スクリプトを書いてこのタスクを完了させる方が効率的です。
この記事では、Pythonを使ってPDF文書のページ数を素早く取得する方法を紹介します。

## サードパーティ・ライブラリのインストール
このタスクには、PythonプログラムでPDFファイルの操作と変換をサポートするライブラリ、[**Spire.PDF for Python**](https://www.e-iceblue.com/Introduce/pdf-for-python.html) が必要です。作業を始める前に、以下のpipコマンドでインストールできます:
“`
pip install Spire.PDF
“`

## PDFのページ数を取得する
**Pythonコード:**
“`python
from spire.pdf.common import *
from spire.pdf import *

元記事を表示

`sum()`関数の結果がfloatになるケースで、間違えて戻りの型を`int`にすると、mypyで「expected “bool”」というエラーメッセージが出た

# 環境
* Python 3.12.1
* mypy 1.10.0

# 何が起きたか

`sum()`の戻り値を`result*`という変数に代入しています。
`result*`という変数の型を間違えて`float`ではなく`int`にしたとき、mypyでは以下のエラーが発生しました。

“`python:sample.py
result1_ok: float = sum([1.1, 2.2])
# mypy error
result1_error: int = sum([1.1, 2.2])

result2_ok: float = sum({“a”:1.1, “b”:2.2}.values())
# mypy error
result2_error: int = sum({“a”:1.1, “b”:2.2}.values())
“`

“`
$ mypy sample.py
sample.py:3: error: List item 0 has incompatible type “float”; expected “bool” [list-item]
sampl

元記事を表示

Python文法まとめ【if】

# はじめに
Pythonの基礎的なことをまとめています。
Google Colabで実行できます。
[Colabの使い方(Python.jp)](https://www.python.jp/train/experience/colab.html “Python.jp 入門講座”)

# 条件分岐
サンプル
~~~Python:
number = 5

if number % 2 == 0:
print(‘偶数です。’)
else:
print(‘奇数です。’)
~~~
変数`number`が偶数か判定するコードです。

~~~
if 条件式:
処理
~~~
が基本形です。

`%`は計算結果の`あまり`を返します。
`==`は、左辺と右辺が等しいかどうかを判定します。

# おわり
お役に立てたら幸いです。

元記事を表示

Web開発の基本概念-3層アーキテクチャについて

この記事はweb開発をするにあたっての3層アーキテクチャについて記述する.さらに例示としてPythonフレームワークであるDjangoとJavaのフレームワークであるSpring Frameworkと3層アーキテクチャの関係性についても記載する.

# 3層アーキテクチャとは
3層アーキテクチャとは,アプリケーションの構造を以下の層に分離することを指す.

![スクリーンショット 2024-04-26 14.27.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/9cc5c2f1-2354-e8d3-7d8a-2ed28836844f.png)

## クライアントサイド
ユーザーインターフェース(UI)を提供するサイド.ユーザーの入力を受け取り、プレゼンテーション層(WEBサーバ)にHTTPリクエストを送信する.また,プレゼンテーション層(WEBサーバ)からのHTTPレスポンスを受け取り,結果を表示する.

## サーバーサイド
### プレゼンテーション層
クライアントからのH

元記事を表示

第四回 | MeCab

# 目的

今までの記事では、エンティティの感情分析と商品の特徴カテゴリーの提案とカテゴライズの説明を行いました。今回は、商品レビュー分析に先立つ重要な、「カテゴライズする際の前処理」と「商品レビューに頻出する単語の抽出」について説明します。
* **カテゴライズする際の前処理**
主に単語の原型化を行います。原型化とは、言葉の形を基本形に戻すプロセスを指します。これは、活用や派生などによって単語が変形した形を、基本形に戻すことです。例えば、「食べます」「食べた」を「食べる」のように単語の原型に戻します。単語の原型化を行う理由としては単語をカテゴリ分類する際には、全ての単語のパターンを把握することが難しいためです。例えば、「強い」という単語をカテゴリ分類したい場合、「強い」「強く」「強」といった変化形も同じ意味で扱いたいでしょう。しかし、全ての変化形を把握し設定するのは困難です。そのため、単語の原型化を行うことで、カテゴライズするパターンを統一し、簡略化することができます。

* **商品レビューに頻出する単語の抽出**
頻出する単語の抽出はマーケティン

元記事を表示

OTHERカテゴリの最新記事