Python関連のことを調べてみた2023年02月16日

Python関連のことを調べてみた2023年02月16日

Python を使用して、ユーザーが検索した単語を登録する辞書システムの例

メモです。

まず、scikit-learn ライブラリをインストールする。
“`
pip install scikit-learn
“`

下記の様なシンプルな辞書を作成できる。

“`
from sklearn.tree import DecisionTreeClassifier
from sklearn.feature_extraction.text import CountVectorizer
from collections import Counter

class Dictionary:
def __init__(self):
self.vectorizer = CountVectorizer()
self.classifier = DecisionTreeClassifier()
self.words = []
self.counts = Counter()

def add_word(self, word):
self.words.append(word)

元記事を表示

Pythonでサーバーから返されたGMT(UTC)時間を日本時間に変換する

# はじめに

以前投稿した記事[「Twitterでの情報収集を RSS へ(一部)移行」](https://qiita.com/penguinprogrammer/items/ef7b9d8455d3bce5c0ed)のプログラムを改良してたのだが、RSSフィードのなかの日時の変換ではまった。

インターネットにもいろいろな情報があるにはあるのだが、Pythonのバージョンだったり、使うライブラリだったり、OS等によっていろいろあるらしく混乱した。自分の頭の整理のためにもまとめた。

# 環境
+ NanoPi NEO2[^NanoPiNEO2とは]
+ Armbian 22.11.4 (debian 11 (bullseye) ベース)
+ Python V3.9.2
+ dateutil v2.8.1
+ pytz 2022.7.1

[^NanoPiNEO2とは]: 中国FriendlyELEC社のARM搭載SBC(シングルボードコンピュータ)。分かりやすく書けば「ラズパイ(Raspberry Pi)みたいなもの」

# やりたかったこと
やりたいことは単純で、サーバーから取得

元記事を表示

GANを用いた手書き文字の生成

昨今画像生成AIの新しい技術が次々と出てきており、より想定に近い形の画像が生成しやすくなっています。
今回は画像生成AIの仕組みを理解するため、昨年流行した画像生成技術のルーツとも言われるGANについて調べました。
## GANとは?
– GAN(Generative Adversarial Network / 敵対的生成ネットワーク)
– Generator と Discriminator の2つのネットワーク構造により成り立っている
– Generator: ランダムなノイズから偽データを生成する。より本物データに近いデータを生成できるよう学習する
– Discriminator: 偽データと本物データを判別できるよう学習する
– Generator と Discriminator をそれぞれ競わせるようにして学習させるため敵対的生成ネットワークと呼ばれる
– 特徴の定量化ができるため、特定のデータに対する特徴の足し引きが可能

### GANの派生手法
– DCGAN(Deep Convolutional GAN)
– Discriminator

元記事を表示

dockerコンテナにgitの最新バージョンを入れる

# コンテナ内にあるgitが少し古い
 今回、pythonを動かそうと公式からイメージを取ってきたところgitのバージョンが少し古くなってました。古くても特に問題はなさそうなんですが、最新バージョンを入れる方法を知っておこうと調べました。初心者の備忘録なので間違いがあればご指摘お願いします。

# Dockerfileへの記述
“`dockerfile
FROM python:3

# インストール前に下準備
# updateでインストールできるパッケージリストの更新、upgradeでインストール済みパッケージの更新
RUN apt-get update -y \
&& apt-get upgrade -y

# 必要なライブラリをインストール
RUN apt-get install -y gettext \
libcurl4-gnutls-dev \
libexpat1-dev \
libghc-zlib-dev \
libssl-dev \
make \
wget

# Gitをソースからコンパイルしてインストール

元記事を表示

PythonAnyWhereでデプロイしようとしたらシークレットキーがないと言われた

# PythonAnyWhereでデプロイしよう
PythonAnyWhereは無料でデプロイできます。(制限はあります)簡単に言うと、自分の作ったアプリを公開できるということです。

## デプロイ方法
 デプロイ方法は先駆者がいるのでそれを参考にしてください。
– [先駆者様リンク](https://qiita.com/t-shirayama/items/a8dc8c7946fdea00d8fa)

 ちなみに、私は先駆者通りにやったら
> $ pa_autoconfigure_django.py –python=3.9 https://github.com//.git

この部分でエラーが出ました。
 そんな「コマンド無いよ」ってエラーだったので、[この方](https://qiita.com/taungyeon/items/9398b4740842dcef821c)を参考にしたら通りました。

## エラー確認
### 確認方法
 先駆者を参考にしてもエラーが出る人もいると思います。私もそうでした。

元記事を表示

【Python】 リストの基本的な操作

# はじめに
初めまして、現在ITエンジニアになるために勉強をしている化学工学系の理系大学生です。qiitaにはアウトプットのために記事を投稿していこうと思います。
言語は機械学習に興味があるのでpythonの勉強をしています。今回はリストの基本的な操作方法についてまとめていこうと思います。
# Pythonのリスト型について
1つの変数に対して複数の値を入れられて、その際に使用する変数の型をリスト型と呼びます。
# リストの基本的な操作
### リストの作成
“`python
list = [1,2,3,4,5]
“`
### リストの要素の取得
“`python
list = [1,2,3,4,5]
print(list[0])
“`
出力結果
“`python
[1]
“`
インデックスは最初を0として1,2,3,4と振られていきます。0と指定すると先頭の要素を取得します。今回の場合だと1です。またマイナスにすると末尾の要素から取得できます。-1と指定すると今回の場合だと5を取得出来ます。

### リストの要素をスライス
“`python
list = [1,2,

元記事を表示

C#とPython:似て非なるasync/await

# はじめに

C#で経験ありでpythonを始めたときにpythonにもasync/awaitあるじゃんと喜び勇んで使ってみたわけですが、ドキュメント読んだりしてると微妙に挙動が違うような?
C#に思考が引き摺られていると妙に混乱するので書き出してみます。

# 結論

・pythonの非同期は単一スレッドのイベントループが基本です。
・c#と等価な処理を実現しようとするとpython的に泥臭くなります。(pythonとしては低位レイヤの機能により実現されるので)
・`await`で待機する場合は`create_task`であらかじめタスク登録しておきます。
・本当に並列に動かしたければ`run_in_executer`を使いましょう。ただし排他に注意です。

# 基本的な違い
簡単に言うと
・C#
 スレッドベースの非同期
・python
 (基本)単一スレッドのイベントループベースの非同期
です。

C#では`async`関数作って`await`で待てば別スレッドが動いてくれます。

pythonではひとつのスレッドでイベントループ機構を用い、非同期っぽく動くのが基本です。ただ

元記事を表示

Lappinna技術部始動!

# 初めに!
皆さん始めまして!Lapinna技術部のしゃちょ~(仮)です!
このアカウントについての説明をさせていただきます!(やるとは言っていない)

![1_hokkaidou.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3163792/9380c14f-17fd-3110-bf6c-46e3f7d62c65.png)

※上記イラストに深い意味はありません。よろしくお願いいたします。

## 記事概要
このアカウントは、初心者向けの記事を投稿するアカウントとなっております。
現職でIT企業に勤めているプロのエンジニアが中心となって記事を上げていく予定となっております!(頑張ってね!

# 投稿予定
## AI関係(機械学習・深層学習/ニューラルネットワーク)
・AIに必要な画像処理技術をまとめてみた(仮)

## WEB開発(PHP/Laravel・HTML・CSS・JS)
・プロのエンジニアが初心者のためのWEBページ作成指導書作ってみた(仮)

## ゲーム関係
・Unityでインベーダー

元記事を表示

Seleniumを使ったWebページのPDF化

# 事前準備

“`shell
# pip install selenium
# pip install webdriver-manager
“`

# 1つのURLだけの場合
“`python
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
options.add_experimental_option(‘prefs’, {
‘download.default_directory’: ‘~/Downloads’
})
options.add_argument(‘–kiosk-printing’)

driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
driver.get(“ここにURLを入れる”)
driver.execute_script(‘window.print(

元記事を表示

LinuxでAnaconda3環境を整える

# 環境
* Windows 10 Home 22H2
* Rocky Linux 8
* SSHクライアント Putty

# ダウンロード
Anaconda公式のLinux版上で右クリックしてください。
![スクリーンショット (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/edcee9c9-2898-b110-f68a-543758558e8e.png)
「リンクのアドレスをコピー」を選択してください。
![スクリーンショット (12).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066166/f4f9f7a1-1436-8f34-c7a3-013cb9226911.png)
Tera TermやPuttyでSSH接続して、wgetコマンドのあとに先程コピーしたリンクを貼り付け、「Enter」を押してください。
![スクリーンショット (13).png](https://qiita-i

元記事を表示

DoWhyでGoogle Colab上にDAGを描画できない場合の対処法

# はじめに
Pythonライブラリ”DoWhy”を用いてGoogle Colab上にDAGを描画する際に出るエラーメッセージとその対処法についてのメモ書き。

# WARNINGおよびERRORの発生
DoWhyだけをインストールして、DAGを描画しようとするとWARNINGが発生する。
“`py
# 必要なライブラリのインストールおよびインポート
!pip install dowhy

from dowhy import CausalModel
import dowhy.datasets
from IPython.display import Image, display

# データの準備
data = dowhy.datasets.linear_dataset(beta=10,
num_common_causes=5,
num_instruments=2,

元記事を表示

PySimpleGUI備忘録~いろんな引数~

# はじめに
PySimpleGUIを使用したいが、日本語版の説明が乏しくて、毎度調べるのが大変。
めんどくさいのでここを見れば思い出せるように覚えておきたいものを記録する。
基本的には、各引数を調べたい場合、公式サイトの[Call Reference](https://pysimplegui.readthedocs.io/en/latest/call%20reference)を参照するとよいです。
※この記事は私が学生のときに書いていたものです。
限定公開していたけど、もったいないと思い投稿しなおしました。

# 目次(関数ごと)
ウィンドウの設定
[sg.Window](#sgwindow)
[sg.theme](#sgtheme)
レイアウト内で使用するもの
[sg.Text](#sgtext)
[sg.Button](#sgbutton)
[sg.Tab および sg.TabGroup](#sgtabおよびsgtabgroup)

# sg.Window
この関数はウィンドウを作成するときに用いる。
以下、例プログラム。

“`py:window.py
import PyS

元記事を表示

[FastAPI] 依存性注入って結局なんで使うんじゃい?

# この記事の目的
– FastAPIにおける依存性注入についてわかる
– 依存性注入を利用することによるメリットがわかる
– 具体的な実装例を知ることができる

# 記述しないこと
FastAPIの書き方

# 依存性注入とは
依存性注入はクラスや関数の引数としてオブジェクトを渡すことで、そのオブジェクトに依存する別のクラスや関数を呼び出すことができるようにするデザインパターンの一つだよ
FastAPIの場合はAPIのエンドポイント関数やビジネスロジックの関数に必要なデータを自動的に提供することができるよ
FastAPIでは、関数に必要なデータを引数として宣言するだけで、FastAPIが自動的に依存関係を解決し、必要なデータを提供してくれるよ
例えば、APIのエンドポイント関数であれば、HTTPリクエスト情報やデータベースコネクションを引数として宣言することができ、FastAPIが自動的にこれらのオブジェクトを生成し、関数に渡してくれるよ

### 依存性注入によって、アプリケーションのコードがよりスマートでシンプルになり、テスト容易性が向上するというメリットがあるんだよ!

#

元記事を表示

AI音声解析・分離ソフトDemucsの検証レポート

# はじめに
## Demucs とは
・AI技術を利用して楽曲の各パートを分離・出力できるソフトウェアライブラリ
・開発元はMeta(Facebook)。オープンソースPJのため、無償で公開されている [2021年4月公開]

[Demucs の ソース](https://github.com/facebookresearch/demucs)
[Demoサイト](https://huggingface.co/spaces/akhaliq/demucs)

## Demucsを用いて私がやりたいこと
01) **楽曲データから直接Sampling!** DJing & Mixingに活用したい
02) 各パートを聴き込むことで、**より繊細なchoreograph**が出来るようになりたい
03) 各パートを聴き込むことで、**楽器演奏の練習効率をあげたい**

## 所見
・各パートの音域が綺麗に別れているのであれば、既存の音声データ編集ソフトでも同様のことが出来ると思います。しかし、そう単純ではない為そういった手段では分離をすることがこれまで出来ませんでした(※私が知る限り)
そう

元記事を表示

【QGIS/Windows/H3】QGIS に H3 toolkit をインストールしようとしたらはまった

下記記事※を参考に **Windows** 環境で、
QGIS, H3, H3 toolkit を導入しようとしたら、ハマったので備忘録としてのこします。

※下記は **MacOS** 環境向けの記事です。

https://qiita.com/se_yataro/items/df047d86cac095724b6d

## 環境

|項目|バージョンなど|
|—-|—-|
|エディション|Windows10 Pro 21H2|
|QGIS|3.22.16|
|Python|3.9.5|

## 現象

1. 下記手順で QGIS 内で Python が実行されている場所の特定
2. cmd で該当場所に移動し、 pip の upgrade を行う際に、 SSL error が発生する。

>QGISで実行しているPythonの場所を確認する
[こちらのQ&A](https://gis.stackexchange.com/questions/351280/installing-python-modules-for-qgis-3-on-mac)を参考にQGISで実行している

元記事を表示

事前学習モデルを利用したFasttextの使い方

# 事前学習モデルのダウンロード

[ここ](https://fasttext.cc/docs/en/crawl-vectors.html)のJapaneseからダウンロードします。
binでbin.gz、textでvec.gz形式のファイルをダウンロードできます。

# vec.gz形式ファイル利用パターン

### 事前学習モデルをロードする
gensimを使用します。Google colabを使っています。model_pathは自身でcc.ja.300.vec.gzを配置したパスを指定してください。

“`python
import gensim
model_path = “/content/drive/MyDrive/機械学習/cc.ja.300.vec.gz”
model = gensim.models.KeyedVectors.load_word2vec_format(model_path, binary=False)
“`

### 類似度トップ10を出力する

“`python
match_top_ten = model.most_similar(“猫”, top

元記事を表示

Gmailの受信フォルダから情報を抽出し、集計する—ゆうちょデビットを例に—

# やりたいこと
– Gmailの受信フォルダから指定した条件の情報を取得し、txtファイルにまとめます。
– 今回は、「ゆうちょデビット」の通知メールに対し、利用日時、店舗、金額のデータを集計します。

# ゆうちょデビットの通知メール
– ゆうちょ銀行のデビットカードの「ゆうちょデビット」ですが、決済が完了すると、以下のメールを即座に登録したメールアドレスに送信してくれます。

![スクリーンショット 2023-02-15 161758.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/e8fea3c3-bc30-92e9-31a7-c0e0eb9174c0.png)

– 毎回の利用金額を手元ですぐに確認できるのは便利なのですが、「週にいくら使ったのか?」などの情報をまとめられると便利ですよね。
– この中の、「利用日時」、「利用店舗」、「利用金額」をこれまでに受信したメールから抽出します。そしてそれを集計したファイルを作成します。

# 参考にした記事
– 以下の二つの記事をもとに作

元記事を表示

新卒エンジニアが【Pythonエンジニア認定基礎試験】の模試を受けてみたら、、、

今回普段自分が使っているPythonの基礎をしっかりと勉強したことがなかったので、きっかけとして模試をとりあえず受けてみました!

しかし、結果は、、、、

55点/100点満点

基礎を怠っているのがバレバレでした。。

70%が合格ラインなので届きませんでした(泣)

再来週に試験を受けるので、模試の間違えたところをチュートリアルを読みながら理解を深めたいと思います!

目指せ合格!!!!!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
◆模試で間違えたところの記録◆

・プログラムの冒頭で「# coding: (エンコーディング方式)」のようにすると、デフォルト以外のエンコーディングを使うことも可能

・”/”はfloat型、”//”は整数値を返す

・num = 123.456
print(‘{:2}’.format(num))
実行結果123.456

【format】
・引数の順番を指定
“`test1.py
pr

元記事を表示

【Python、AI関連】文系向けAIの本を読んでみたのでレビュー

:::note info
文系向けに書かれたAIの本を読んでみたのでレビューをします。
内容のネタバレはしないように配慮いたします。
:::

## 読んだ本
– タイトル:文系AI人材になる
– 著者:野口竜司

https://www.amazon.co.jp/%E6%96%87%E7%B3%BB%EF%BC%A1%EF%BC%A9%E4%BA%BA%E6%9D%90%E3%81%AB%E3%81%AA%E3%82%8B%E2%80%95%E7%B5%B1%E8%A8%88%E3%83%BB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E7%9F%A5%E8%AD%98%E3%81%AF%E4%B8%8D%E8%A6%81-%E9%87%8E%E5%8F%A3-%E7%AB%9C%E5%8F%B8-ebook/dp/B0828D1TYR/ref=sr_1_1?adgrpid=134580030913&gclid=CjwKCAiA3KefBhByEiwAi2LDHBAsdVGfPZ_NywYgCVA4ENmaOVZwTkqyaE6S4I4

元記事を表示

Python基本文法3(関数 編)

# 概要
[MySQL勉強まとめ2](https://qiita.com/iwhg0211/items/31ccb2793d17c4ea639e)の続きです。
個人的な勉強のまとめなので、もし修正があればご指摘いただけるとありがたいです。

# 目次
– 関数

# 関数

“`Python:ターミナル
# 関数 print_hand を定義
def print_hand():

# 実行する処理
print(‘グーを出しました’)

# 関数の呼び出し
print_hand()
“`

#### 処理の順番
1. 関数print_handが定義される
1. 関数print_handが呼び出される
1. 処理を実行する

“`Python:ターミナルの結果
グーを出しました
“`

# 引数
“`Python:ターミナル
# 引数を受け取る
def print_hand(hand):
# 「 ◯◯を出しました 」と出力されるように、引数と文字列を書く
print(hand + ‘を出しました’)

# 引数に文字列「 グー 」を入れる
print_ha

元記事を表示

OTHERカテゴリの最新記事