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

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

基本的なPython其の物についてお浚い

## 概要
改めてPythonはどういったプログラミング言語なのかという事を、初学者向けにまとめました。なるべくわかりやすくまとめる様努めましたが、何か修正が必要な箇所が御座いましたら、何なりとお申し付け下さい。

## Pythonの特徴
### 高水準言語
高水準言語とは、**人間が理解し易い言語**の事です。

予備知識として、その他の高水準言語にC/C++, Perl, Javaなどがあります。
もちろん高水準言語があるくらいなので、低水準言語もありそれらには機械語や、アセンブリ言語などが該当します。

:::note info
**人間が理解し易い言語**
:::

### 動的型付け言語
動的型付け言語とは、**型の指定が不要な言語**の事です。
なので、Pythonは実行時に型を判断しています。

予備知識として、その他の動的型付け言語にRuby、JavaScriptなどがあります。
こちらも同様に動的型付け言語があるぐらいなので、静的型付け言語もありそれらにはC/C++, C#, Java, Goなどがあります。

もっと動的型付け言語と静的型付け言語について詳しく知り

元記事を表示

re.error: nothing to repeat at position … ってなんだ?

Pythonなどでコーディングしていると、以下のようなエラーに遭遇することがあります。

**re.error: nothing to repeat at position**

あとは0とか13とかいろんな数字が出てきますが、これに対してあまり有効な回答がなかったので、ズバリ答えを書いておきます。

# 答え
正規表現の繰り返し記号の部分を見直しましょう。positionは正規表現内Regex(reはRegexのこと)記述部分の文字列位置で、0だと0文字目、13だと13文字目です。

“`py:test.py
val = re.sub(r'(+?)(\d+)(.*)’,r’\1数値\3′,val)
“`

これを確認すると+記号が0文字か1文字としているようですが、+は繰り返し記号(1文字以上の繰り返し)と被ってしまうので、**存在しない値の繰り返し**を指定することになり、以下の警告が出ます。

**nothing to repeat**

つまり、**繰り返したい文字がないんだけど**、という意味です。繰り返し記号と重なる記号をマッチングさせたりする場合は必ずエスケープして

元記事を表示

マジック・ザ・ギャザリングのカード名(日本語)だけで歌う人「みっちー」/シンガロンパレードを作ってみたらプロ歌手の凄さを感じた。

# はじめに

この記事は、以下の記事に感銘を受けて書いたものです。
また、一部実装および記事の内容も参考にさせて頂きました。

https://qiita.com/atsukoba23/items/30defcdb69163612fc27

https://qiita.com/shoku-pan/items/ca8040fb633426f9f6c2

# 要約

入力された単語(ひらがな)に最も似ているMTG(Magic: The Gathering)[^1]のカード名を表示するWebアプリを作成しました。

# サンプルWebアプリ

[MTGのカード名に似た単語を探す](https://umimya3-mitchiy-streamlit-app-l8nmbf.streamlit.app/ “StreamlitのWebアプリ2”)

# みっちー(シンガロンパレード)について

みっちー氏は京都発のインディーズバンド「シンガロンパレード」のボーカルを担当しており、普段はバンド活動で全国を飛び回る傍ら、トレーディングカードゲーム「Magic: The Gathering(マジック・ザ

元記事を表示

クラウドの利用費をJupyter Notebookで可視化する

# はじめに
本記事はクラウドの利用費をJupyter Notebookで可視化する方法について記載しています。

Google Cloud Platform(以下、GCP)のコスト分析を行うために、Cloud Billingを用いて費用を確認していたところ、以下の課題がありました。

– レポート画面で期間を指定してコスト推移の分析はできるが、アウトプット機能が乏しい
– 料金明細画面で費用の詳細の表示及びCSVのダウンロードができるが、請求月の指定が1ヶ月単位になるため、期間の範囲を指定したコスト推移の分析がしにくい

GCPのCloud Billingは、AWSのCost Explorerに相当する機能ですが、AWSの場合は期間の範囲を指定してCSVのダウンロードが可能なため、使い勝手に困っていました。

ソリューションとして、料金明細画面から分析したい期間のCSVファイルをダウンロードして、Jupyter Notebookで分析します。

## Jupyter Notebookで可視化する
本記事ではPythonの仮想環境上で動かしていますが、Jupyter Notebookは

元記事を表示

【自然言語処理】Kaggle1位タイ語極性分析を日本語でやってみる【TDIDFロジスティック回帰】

:::note warn
この記事はKaggle1位の解法を解説しているだけで、筆者が1位を取ったわけではありません。
[実際に1を取ったCSTORM3000氏](https://www.kaggle.com/c/wisesight-sentiment/discussion/83564)を崇めましょう。
:::

# 前置き
自然言語処理処理職人の皆様こんにちは、いかが処理処理されていますでしょうか。
筆者はインターン先でタイ語の自然言語処理で遊んでいますが、タイ語自然言語処理界の金字塔pythainlpの[チュートリアル](https://pythainlp.github.io/tutorials/notebooks/sentiment_analysis.html)に面白い極性分類の方式があったので紹介し、日本語で試したいと思います。

その名も、 **TFIDFロジスティック回帰** です。

## 極性分析とは
**テキストが与えられて、それが喜んでいる「ポジティブ」か、憎悪に満ち溢れた「ネガティブ」のどちらかに区分けすることです。**
* 「俺の彼女はアスナに似てるw」というテ

元記事を表示

【Python】igraphでグラフ・ネットワークを生成・描画する

# igraphについて ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697094/24e1ed19-472d-0528-ec87-6728fc8a54ea.png)
グラフの作成・操作を行うライブラリ(内部はC/C++系)。2023年2月現在の最新バージョンは 0.10.4 。
【参考】[公式サイト](https://igraph.org/)

> RやPythonで利用可能なigraphパッケージが公開されている。今回はPython版を利用する。

`pip install igraph` または `conda install -c conda-forge python-igraph` によりインストール可能([公式ドキュメント](https://igraph.readthedocs.io/en/stable/))。

> かつてはPyPIにおいて “igraph” と “python-igraph” という2つのパッケージが競合してしまい、pipでは正しくインストールできないとい

元記事を表示

pythonの内包表記について

内包表記は、Pythonでリスト等を作成するための短い構文です。

通常のfor文を使用した以下のプログラムがあるとします。
“`python
numbers = [1, 2, 3, 4, 5]
doubled_numbers = []
for n in numbers:
doubled_numbers.append(n * 2)
“`

このプログラムを内包表記で表現すると以下のようになります。
“`python
numbers = [1, 2, 3, 4, 5]
doubled_numbers = [n * 2 for n in numbers]
print(doubled_numbers)
“`
print(doubled_numbers) の出力結果は
[2, 4, 6, 8, 10]となります。

また、リスト内の数字が偶数かどうかを確認し、偶数だけを含むリストを作成することもできます。
“`python
numbers = [1, 2, 3, 4, 5]
even_numbers = [n for n in numbers if n % 2 == 0

元記事を表示

言語の壁を打ち破る:GPT with 多言語インデックス

## この記事を読むと嬉しいこと

言語の壁を越えた、グローバルAIを作れます!
= GPTに英語と日本語、中国語、フランス語…の情報をまとめてインプットし、質問に答えさせることが出来ます!

“`python

“””「Harry Potter(英語)」と「ぼっち・ざ・ろっく!」の情報をまとめて与えた後で質問をした時の回答”””

# before
index.query(“ハリーの学校では、何を教えている?日本語で答えて”)
# -> ハリーの学校では、何を教えているかは不明です。

# after
index.query(“ハリーの学校では、何を教えている?日本語で答えて”)
# -> ハリーの学校では、魔法と魔法使いの学問を教えています。

“`

## 背景・課題

今大人気のGPTに、外部情報を繋ぐ[GPT Index](https://github.com/jerryjliu/gpt_index)が物凄い勢いで使われています。一方で、この仕組みを無邪気に使おうとすると、OpenAIに課金しまくることになり、お財布が。。

https://github.com/jer

元記事を表示

最近のイラスト系画像生成AI調べてみた

こちらのきじを読んだ

https://taron88wordpress.net/2023/01/08/stable-diffusionmodel/

漫画に使えそうなモデル

実写系
– 公式配布モデルの**stable-diffusion-2-1**はグレースケールしたら背景の生成が手早く出来そう

イラスト系
– 適性が高いモデルは倫理的にグレーなのが多い….!
– NovelAIは有料なので、**Waifu Diffusion**を使ってキャラクターの生成が出来そう。

ひとまず公式配布のSDとWDを動かしてみます。

元記事を表示

Flet – アイコンブラウザの改良

# はじめに

Fletの公式サイトにアイコン検索ができるサイトがあるのですが、いつの間にか使えなくなっていました。(2/2現在)
恐らくメモリ不足になっているのではないかと思います。
サイト:https://flet-icons-browser.fly.dev/#/

そこで、公開されているソースをもとに少し改良したものを作ってみたので、その内容をまとめておきます。
公式のソース:https://github.com/flet-dev/examples/tree/main/python/apps/icons-browser

ちなみにアイコンの検索は↓できます。(たぶんFlutter用を探せば使える)
https://fonts.google.com/icons?selected=Material+Icons&icon.platform=flutter&icon.set=Material+Icons

# 作ったもの

作ったアイコンブラウザはこちら。良ければ試してみてください。

https://my-icons-browser.fly.dev/#/

![image.png](h

元記事を表示

ChatGPTに書いてもらったPythonコード集

プログラミングを始めて1年弱、やりたいことをやるスピードにコードを書く実力が伴っていない。

そんな時はAIに頼ろう。

# ChatGPTとは?
ChatGPTは、OpenAIが開発した言語モデルです。ChatGPTは、大量のテキストデータを学習して、人間のような文章を生成することができます。ChatGPTは質問応答、文書生成、機械翻訳など、様々なタスクに使用されています。GPTは「Generative Pretrained Transformer」の略で、「生成的な事前学習トランスフォーマー」の意味です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603818/2b1c71c2-a981-7bb3-8f26-cf5f47ca07ee.png)
上の文章もChatGPTに書いてもらった。

以下、コード集もすべて、ChatGPTが書いてくれた。

# Q. 誕生日を入力すると現在の年齢がわかるPythonの関数を出力して
次の関数を使用することで、誕生日を入力すると現在の年齢が

元記事を表示

画像から動画を生成 OpenCV

“`python
import sys
import cv2
import os

video_dir = “videos”
video_list = os.listdir(video_dir)

codec = cv2.VideoWriter_fourcc(*’mp4v’)
# video = cv2.VideoWriter(filepath, codec, CLIP_FPS, (w, h))
# encoder(for mp4)
fourcc = cv2.VideoWriter_fourcc(‘m’, ‘p’, ‘4’, ‘v’)
# output file name, encoder, fps, size(fit to image size)
out_file_name = ‘video.mp4’
video = cv2.VideoWriter(out_file_name,fourcc, 20.0, (1280, 720))

for frame in video_list:
# hoge0000.png, hoge0001.png,…, hoge0090.pn

元記事を表示

エンジニアインターン10日目

今日はpythonを使ってスクレイピングをした。Beautifulsoupを使ってDOM要素を取り、得た情報を配列に渡して、DBに保存する仕組みだった。複数のページからスクレイピングをしたかったため、urlを配列に渡して、ページごとに正しい値を取るようにした。lambda上でtestをしてエラーを解決しながら進めた。やはり、初心者だと、エラーを解決するのに時間がかかってしまったり、工夫がまだまだ足りていない。そこで、先輩エンジニアに質問することでエラーに対する工夫の仕方や考え方などを教えていただくことができる。自分で検索して探すことももちろん大切であるが、いつでも質問できて、改善させてくれるような環境を持つこともとても大切であると考えた。そろそろインターンを初めて1か月を立とうとしている自分にもタスクに対する責任感も出てきて、日々成長した姿を証明していきたいと思う。しかし、まだまだ分からないことの方が多い。失敗を恐れず、チャレンジを辞めずに成長していきたい。

元記事を表示

未経験からデータアナリストへ転職する為には?

①目的と期間

目的は、データアナリスト、データサイエンティスト職種へ転職することです。
期間としては、私の場合、未経験かつ異業界でしたので約1年間の準備を行ってきました。

②必要なスキルとそれを裏付ける方法

・プログラミング開発経験/データ分析経験 ➡ ポートフォリオ作成、スクール、kaggleなど
・機械学習・プログラミング ➡ Python3エンジニア認定基礎試験/データ分析試験
・ロジカルシンキング 
・コミュニケーション能力 
・業界知識
・数学(微分積分/線形代数/確率統計) ➡ 統計検定2級
・コンピュータサイエンス ➡ 基本情報技術者試験、G検定
・創意工夫/インプット/アウトプット/自己研鑽 ➡ 日々の学習のアウトプット

③未経験からの学習ロードマップ(個人的)

⑴プログラミング言語に関する基礎理解(約2ヶ月:1・2月) 
方法:Progateにて有料プラン含めて3周(SQL、Python)

⑵Python、データサイエンスに関する基礎理解(約2ヶ月:3・4月)
方法:書籍「AIデータ分析プロジェクト」「これからのデータサイエンス」
   Udemy「現役シ

元記事を表示

Djangoでプロジェクトを作成しローカルサーバーを起動してみた

## 背景
2023年にエンジニアとして1円でも良いので仕事を取りたいという気持ちがありますが、どこから手をつければ良いのか分からない中でDjangoを扱えるようにがんばっています。毎日少しずつでも良いので学んだことや解決したことを蓄積していければと思っています。暖かい目で見守っていただければ嬉しいです。

そもそもマークダウンの書式が分からない…[こちら](https://qiita.com/shizuma/items/8616bbe3ebe8ab0b6ca1)や[こちら](https://qiita.com/Qiita/items/c686397e4a0f4f11683d)を見ながら。

## やったこと
まずはプロジェクト作成
“`python:terminal(PJT作成したいフォルダ)
% django-admin startproject mysite
“`
おまじないとして:
“`python:
% cd mysite
% python manage.py migrate
Operations to perform:
Apply all migrations:

元記事を表示

pyminizipでcompress_multipleを使わずに複数のファイルをまとめる方法

#### 概要
pyminizipを使って圧縮ファイルにパスワードを付ける時、
複数のファイルをまとめるならcompress_multipleを使うけれども、
イテレートしながらファイルをまとめたい時のやり方。

#### 方法
– pyminizip.compressでパスワード付きのzipファイルを作成してから、zipfile.ZipFileの追記モードでファイルを追加していくとできる。

“`python
import zipfile
from pathlib import Path

import pyminizip

class ZipFileProcessor:

@staticmethod
def init_zipfile_with_password(zip_file_name: str, file_name: str, password: str) -> None:
pyminizip.compress(file_name, ”, zip_file_name, password, zipfile.ZIP_DEFLATED)

元記事を表示

Gitを作ってみる(理解編)

# はじめに
都内でひっそり見習いエンジニアをしている@noshishiです。
`add`して`commit`するプログラムの作成を通じて、Gitを内部から理解しようという記事です。

:::note info
記事が長くなったため、理解編と開発編の二つに分割して投稿します!
:::

# 前書き
昨年末、Gitの記事を書いて、理解できたなら作るのではと思いったったのがこの記事の出発点です。
これを機に新しいプログラミング言語にも触れてみて、いろいろ学べたらと思いRustで今回挑戦しました。
(この時は、新たなことを同時に取り組み絶望すること知る由もない著者でした。軽い気持ちで手を伸ばした自分をしばきたいです。。。)

実際に作成した(継続開発中ですが)リポジトリは、[こちら](https://github.com/nopeNoshishi/nss)です。
※いちようローカルでの一直線の開発はできそうな程度までは作成できました。コードのしょぼさはご容赦ください。

:::note warn
この記事だけでは説明しきれない部分があることをご容赦ください。
もちろん、間違い等あれば、

元記事を表示

ベジェ曲線を用いたドリフトイージングの提案及び実装

 アニメーションにおいて、イージングは細かい味付けをするのに重要です。
 代表的なイージングとして、

– `Sine`
– `Cubic`
– `Quint`

 等がありますが(詳しくは https://easings.net/ja 参照)、より細かい表現をするために `Drift` というイージング関数を考案・実装しました。

# なにが出来るのか

 ある点まではイージング的な動きをし、ある点からは等速直線運動をして目的地に達する、という動きを表現できます。(最初がイーズアウトの時は)加速した後その勢いで滑っているように見えるので、`Drift` という名称をつけました。

 単一のイージング関数ではなく、運動が切り替わるポイントごとにイージング関数の形が変わります。そのグラフをまとめたものが以下になります。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/16cdd37b-2592-8d07-7c6d-7b135713ab58.png)

(●は等速直線運動に切

元記事を表示

Pythonでテンプレートマッチングをして遊んでみた

Pythonで画像認識で色々試していた時に、ポケモンの識別ができたら面白いなと思い勉強がてら実装してみました。

## 仕様
ディレクトリ構造は以下です。
“`

pokemonPython/
├── pokemonImages/
│ ├── カイリュー.jpg
│ ├── サザンドラ.jpg
│ ├── シビルドン.jpg
│ ├── テツノツツミ.jpg
│ ├── デリバード.jpg
│ └── バンギラス.jpg
├── importImage.jpg
└── template.py
“`
importImage.jpgとpokemonImagesフォルダの中の画像たちを比較して同じポケモンのファイル名を出力します。

取り込んだポケモンの画像からポケモンの名前を取得したい!とかいう処理に使えるかなと思います。

pokemonImagesフォルダの中に比較対象のポケモンの画像を入れていけば比較できるポケモンを増やせます。

ちなみに想定としては、ゲームに登場したポケモンの名前を

元記事を表示

PytestでPrivateメソッドを扱う時の備忘録

# 概要
– 単体テストを書く際に、Privateメソッドの呼び出しに苦労したので方法を書き下しておく。

# ケース1(通常呼び出し)
### テスト対象ファイル
“`python:function.py
class Service:
def __private(self, name):
return name
“`

### テストファイル
“`python:test.py
from function import Service

def test_private():
name = “Smith”

s = Service()
r = s._Service__private(name)

assert r == “Smith”
“`
“`
[クラスのインスタンス]._[クラス名]__[Privateメソッド名]
“`

# ケース2(Mockする場合)
### テスト対象ファイル
“`python:function.py
class Service:
def __private(self):

元記事を表示

OTHERカテゴリの最新記事