- 1. Julia の内包表記いろいろ
- 2. VSCode GUIからのpytestでModuleNotFoundErrorが起きたら
- 3. VScodeでPythonスクリプトにreportMissingModuleSourceという警告が表示されるときの対処
- 4. Djangoで作れるアプリはどんなものが適してる?
- 5. PythonでGUIをつくる-pyvistaで3D表示
- 6. パッケージ管理ライブラリryeつかってみた
- 7. ABC339回答メモ
- 8. 新卒エンジニア勉強会-bit演算
- 9. Google ColabとAWSを連携して、boto3を使う方法
- 10. WatsonでLLMを使って農林水産省の白書から食料に関する言及を抽出する
- 11. LinuxでPythonのGUI(tkinter)のWindows実行ファイルをクロスコンパイルする
- 12. ABC339をPythonで(A~E)
- 13. リストの辞書が欲しい時とかdefaultdictを使ってみた。
- 14. 休日つき datetime.date 風クラス
- 15. [Python]画像の補間について図を用いて説明する(最近傍補間、バイリニア補間)
- 16. trusted publishingとは?
- 17. 【笑い男事件2024】OpenCVで顔を検出して笑い男にする
- 18. 5分ではじめるLINEBot(python編)
- 19. 【数学溢れ話】【Token】N進数から複素螺旋座標系(Complex Helix Coordinate System)へ
- 20. 仮想環境(venv)について
Julia の内包表記いろいろ
# 内包表記
ChatGPT
>内包表記(ないほうひょうき)は、プログラミング言語において、リストや配列などのデータ構造を生成するための構文の一つです。一般的に、リスト内包表記や集合内包表記として知られており、簡潔な記述で要素を生成することができます。Pythonなどの言語でよく使われます。## 内包表記要素に対する変換式
### 基本
“`julia
a = [10^i for i in 1:5]
@show a
“`
“`julia:結果
a = [10, 100, 1000, 10000, 100000]
5-element Vector{Int64}:
10
100
1000
10000
100000
“`### タプルを返す
“`julia
a = [(i,10^i) for i in 1:5]
@show a
“`
“`julia:結果
a = [(1, 10), (2, 100), (3, 1000), (4, 10000), (5, 100000)]
5-element Vector{Tuple{Int64, I
VSCode GUIからのpytestでModuleNotFoundErrorが起きたら
# エラー内容
VSCodeのGUIからpytestを実行するとテスト対象モジュールのimportで失敗する。
![スクリーンショット 2024-02-04 12.00.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386408/76ce0c11-5704-9d77-16e3-af275f1770cd.png)
# 解決方法
`__init__.py`にパスを追加する。# 目次
1. [VSCodeのセットアップ](#VSCodeのセットアップ)
1. [ディレクトリ構成と対象ファイル](#ディレクトリ構成と対象ファイル)
1. [__init__.pyでパスを追加する](#__init__.pyでパスを追加する)
1. [poetryからテスト実行する場合](#poetryからテスト実行する場合)
# VSCodeのセットアップ
拡張機能として[Python Test Explorer for Visual Stud
VScodeでPythonスクリプトにreportMissingModuleSourceという警告が表示されるときの対処
## 背景
![スクリーンショット 2024-02-04 10.51.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1548368/d03cf20f-a6a6-55c9-3fe9-965d61bb8c70.png)
黄色い波線のような表示を消したい。
openpyxlはインストール済みだし、実際に本スクリプトをエラーなく実行可能なのでvscode側の設定に問題があると見込んだ。### 環境
* MacOS 14.2.1
## 状況把握と解決
ガッツリ個人開発をする人間ではないので「とりあえずPythonが実行できれば良い」という感じだった。
そのため、macのデフォルトのバージョンで実行しているのかcondaで用意した仮想環境のどれかで実行しているのかを気にしていなかった。今回、警告されたopenpyxlはbaseという名前の仮想環境内でインストールしたモジュールだった。
そのため以下のようにコマンドパレット -> Python: selecet interpreter ->
Djangoで作れるアプリはどんなものが適してる?
# はじめに
Djangoは、プロジェクトの迅速な立ち上げ、堅牢なセキュリティ、柔軟なユーザ認証システム、そして拡張性に優れたPythonのフレームワークです。このフレームワークは、プロジェクトの初期段階から高度な開発ニーズまで幅広く対応します。
FlaskやFastAPIなど市場で人気のあるフレームワークの1種です。![DALL·E 2024-01-30 15.41.23 – A visually appealing and modern blog header image that represents the Django framework for web development, including symbolic elements like Python lo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603047/08a98574-ac1c-c27c-dced-65628c953154.png)
# Djangoについて
Djangoは、その高レベルな設計により、開発者が複雑な機
PythonでGUIをつくる-pyvistaで3D表示
# pyvistaのplotterをpyqtのウィンドウに埋め込む
pyvistaqtを使ってpyqtのwidgetとして扱える。
BackgroundPlotter().interactorがwidget。“`python
from pyvistaqt import BackgroundPlotterself.plotter = BackgroundPlotter()
self.plotter.setWindowTitle(‘3D Visualization’)
self.plotter.add_mesh(pv.Sphere())
self.pyvistaWidget = self.plotter.interactor
“`pyqtのwidgetとして扱えるので、他のwidgetと並べて表示できる。
![スクリーンショット 2024-02-04 10.03.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/74e5760f-a067-6272-ad80-9aa87
パッケージ管理ライブラリryeつかってみた
## 背景
Kaggleのコンペで勉強をさせてもらうことが多く、解法はもちろんなのだが使っているライブラリや技術を知る→使うきっかけになって非常にありがたい。
今回はその一つであるryeについて使ってまとめていきたいお気持ちとなりました。## 対象者
– 環境構築でよく引っ掛かり難民になるかた(私)## 概要
基本的にはryeのInstallationに沿って進めていきます
[Installation – Rye](https://rye-up.com/guide/installation/)## 前提
– Linux環境## 実践
Windows環境で使用しているVSCodeではデフォルトターミナルがPowerShellになっています。
好みあるかもしれませんが今回はbashに変更してしまいます。
変更方法は以下をご参照下さい。
[VSCodeのデフォルトターミナルを変更する方法](https://zenn.dev/unsoluble_sugar/articles/362a17a7f57020)### 初期設定
ターミナルにてインストールを実行するために以下コマン
ABC339回答メモ
# 0.はじめに
今回のコンテストは問題のレベルがちぐはぐな気がしました。
Bが難しく、Cが簡単でD,EよりFが簡単な気がしました。
Fが簡単だったのは、Pythonの言語的特性のせいかもしれません。
サッカー見ながらやってたら、A正解でフィニッシュになりそうだったので
消して集中しました。
そんなこんなで、ABCF正解で1798thと近年まれに見る高順位。
レートも936と初の900台に届きました。# 1.A – TLD
最後のドット以降の文字列を表示という問題。
答えを格納するリストansを用意しておいて
Sを先頭から見ていきながらansに1文字ずつ格納。
”.”がきたらansを空にする。
といったロジックで最後にansをjoinして出力。
いろいろやり方ありそうですが自分なりにすっきりした方法を取りました。https://atcoder.jp/contests/abc339/submissions/49916205
# 2.B – Langton’s Takahashi
大ブレーキを起こした問題。
Dでもよいのでは・・・という印象。
新卒エンジニア勉強会-bit演算
## はじめに
新卒エンジニア同士で実施している勉強会の第4回目の記事になります。
今回のテーマはbit演算についてです。
| 回 | テーマ | 記事リンク |
|:———–|:————|:————|
| 第1️回 | 二分探索 ||
| 第2回 | ソートアルゴリズム ||
| 第3回 | 暗号化 ||
| **第4回** | **bit演算** ||
| 第5回 | 連想配列 ||
| 第6回 | グラフ理論 || ## 前提
今回はbit演算を用いて簡単な計算をするプログラムを作ります。bit演算はコンピュータの基本原理と深い関係
Google ColabとAWSを連携して、boto3を使う方法
# はじめに
Lambda関数を実装するなら、まずGoogle Colabでコードの挙動をひとつずつ確かめながら書いていく方が課金を抑えられるのではと気づいたので、手順をまとめました。# 1.AWS設定ファイルをGoogle Driveに保存する
– config
– credentials
:::note info
macなら
~./aws/config
~./aws/credentialsWindowsなら
%USERPROFILE%.aws\config
%USERPROFILE%.aws\credentials
:::https://docs.aws.amazon.com/ja_jp/sdkref/latest/guide/file-location.html
# 2.Google Driveのマウント
“`py
from google.colab import drive
drive.mount(‘/content/drive’)
“`# 3.AWS認証設定
“`py
import osconfig_file = “/content/drive/M
WatsonでLLMを使って農林水産省の白書から食料に関する言及を抽出する
# 概要
自然言語処理のタスクのひとつに、固有表現抽出 (Named Entity Recognition) というものがあります。
詳しくは他のサイトなどを見てもらいたいですが、たとえば「太郎は3000円を支払った」という文章から「太郎」を人名、「3000円」を金額といったように、固有表現を抽出するタスクです。ここでは、Watson DiscoveryとWatson Studioを使って、LLMで農林水産省の[食料・農業・農村白書](https://www.maff.go.jp/j/wpaper/index.html)から「食料」に関する言及を抽出してみたいと思います。
# 手順
## 1. Watson Discoveryとデータの準備
まずはWatson DiscoveryのEntity Extractorを使って文章中の食料にラベルづけして学習データを作ります。
Watson Discoveryの[インスタンスを作成](https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-getting-st
LinuxでPythonのGUI(tkinter)のWindows実行ファイルをクロスコンパイルする
LinuxでPythonコーディングしてWindowsにexeファイルを提供する方法についてまとめる
# Wineのインストール
インストール手順
https://wiki.winehq.org/Ubuntu“`
$ sudo dpkg –add-architecture i386
$ sudo mkdir -pm755 /etc/apt/keyrings
$ sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
$ sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
$ sudo apt update
$ sudo apt install –install-recommends winehq-stable
“`# PythonをWineにインストール
ここで
ABC339をPythonで(A~E)
日本レジストリサービス(JPRS)プログラミングコンテスト2024(AtCoder Beginner Contest 339)の解答等のまとめ
https://atcoder.jp/contests/abc339
# A問題
. で分けて最後を出力
“`python:A
print(input().split(“.”)[-1])
“`
# B問題
問題文通りにシミュレーション
“`python:B
h, w, n = map(int, input().split())field = [[“.”] * w for _ in range(h)]
x, y, arr = 0, 0, 0
array = [(-1, 0), (0, 1), (1, 0), (0, -1)]
for _ in range(n):
if field[x][y] == “.”:
field[x][y] = “#”
arr = (arr + 1) % 4
else:
field[x][y] = “.”
arr = (arr
リストの辞書が欲しい時とかdefaultdictを使ってみた。
今回もまたpythonの小ネタです。というかちょっと調べたら出てきたので書く価値があるか不明ですが、書きます。
## やったこと
リストを格納した辞書を作成するために、存在しないキーに勝手に新しいリストを作ってくれる方法を探した。 **割と基本的なところにあった。**### 稀によくある面倒なこと
pythonに限りませんが、リストの辞書が欲しくなることってないですか。何かのコレクションを読み取って、その中の特定の値をキーに読み取った内容を再構成するようなコードを書く時ってあります。実際に書いてみます。
“`python:listtodict.py
# 居住地 & 名前のタプルのリスト
SOURCE = [
(‘埼玉県’,’タケシ,’),
(‘東京都’,’ヤスシ,’),
(‘千葉県’,’ヒロシ,’),
(‘埼玉県’,’ケン’),
(‘埼玉県’,’ハルト’),
(‘埼玉県’,’アキラ’),
(‘東京都’,’ゴロウ’),
(‘群馬県’,’ヨシオ’),
(‘千葉県’,’カツオ’),
(‘群馬県’,’ヒロカズ
休日つき datetime.date 風クラス
JavaScript で作ったものを Python で実装しました。
https://qiita.com/ikiuo/items/4ab99731ecac076f3608
# JHDate クラス
JHDate はオブジェクトの生成時に休日を取得しています。
datetime.date に以下を追加しています。
“`text:
プロパティ:
holiday
休日名(振替休日も対象)クラス メソッド:
holidays(year, month=None)
指定された年(year)と月(month)から祝日の一覧を返す。
振替休日は含みません。
“`“`python:jholiday.py
#!/usr/bin/env python3import datetime
class JHoliday:
MONTH = {n+1: {} for n in range(12)}def __init__(self, name, month, day, start=None, end=N
[Python]画像の補間について図を用いて説明する(最近傍補間、バイリニア補間)
# はじめに
Pillowで画像の拡大縮小や回転を行う際、resampleという引数を指定することができる。例えば、以下のようなコードである。“`python
image = Image.open(“hogehoge”)
rotated_image = image.rotate(angle=45, resample=Image.BICUBIC)
“`resampleは、画像の補間方法を指定することができる引数である。今回は画像の補間とは何なのか、補間の方法にはどんなものがあるのかをまとめたいと思う。
# 画像の補間とは
画像の補間とは、既存の画像を基にして新しい画像を生成するプロセスである。例えば、画像の拡大は元の画像を基にしてサイズの大きい新しい画像を生成している。画像を拡大する際、元の画像になかった画素が生成される。そのため新たに生成された画素にどのような画素値を入れるか考える必要がある。(添付画像のA, Bは拡大することで新たに生まれた画素)
![スクリーンショット 2024-01-28 224554.png](https://qiita-image-store.s
trusted publishingとは?
# 概要
「信頼された出版を設定する」[^1]とか日本語訳されている「trusted publishing」とは何か?を、GitHub Actionsを用いてPyPIに配布パッケージをアップロードする(登録する)場面に即して解説する。
[^1]: https://packaging.python.org/ja/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/#configuring-trusted-publishing
# trusted publishingとは?
PyPIへの登録を行える人を、PyPIアカウント所有者以外に追加で登録する仕組み、と捉えることが出来る。
通常はPyPIアカウントの所有者が実行した「アップロード処理」に限ってPyPIは許可する。これに対して「私の代わりに、このPublisherにもアップロードの権限を与えてくれ」と設定すること、と言える。
通常のTwineを用いたアップロード処理の流れは以下の通り。
![p
【笑い男事件2024】OpenCVで顔を検出して笑い男にする
# 笑い男事件発生
Qiitaを利用しているプログラマやエンジニアのほとんどが履修してるであろう作品、「攻殻機動隊」。その中の2002年から2003年に放映されたシリーズ「STAND ALONE COMPLEX」の劇中に出てくる笑い男事件と呼ばれる一連の事件の発端が2024年の2月に起こります。ついに、時代が追い付きました!まだ電脳化もしてないのに…w。
笑い男事件の詳細を知らない方は、この機会に攻殻機動隊SACを観ましょう。2024年2月、笑い男事件発生。
ここから何が始まる?詳細情報は特設サイトで…https://t.co/b4m9uAXn7u#攻殻機
5分ではじめるLINEBot(python編)
# LINEBotをpythonで手軽にはじめたいZE!
## なんの記事?
LINEBotを手軽に始める方法はたくさんあって、とりあえずGASでやるのが王道な印象がありますが、pythonで手軽に始める方法です。
pythonはプログラミング言語のひとつです
## ChatGPTと仲良しな言語
ご存じのとおり、ChatGPTは「Advanced Data Analysis」という機能でpythonで実行可能なプログラムを作成でき、プログラミングがわからなくても、ガリガリとコードを書いていけます!
また、ChatGPTなどの生成AIの技術を使おうとするとだいたいサンプルコードがpythonだったりするので、pythonでもサクッと始められるといいなと思って記事にしました。# 準備するもの
– Railwayのアカウント登録([こちらから](https://railway.app/))
– 料金については[こちら](https://railway.app/pricing)
– 自分のGithubからリポジトリを選択するので、Github連携をしておきましょう
【数学溢れ話】【Token】N進数から複素螺旋座標系(Complex Helix Coordinate System)へ
[【Token】実数概念の代用品としての「連続有理数集合](https://qiita.com/ochimusha01/items/6c0291a29b781167ab99)
上掲の投稿の内容を整理するうちに複素螺旋座標系(Complex Helix Coordinate System)とでも呼ぶべき概念に到達しました。ここではその内容をメモがてら簡単にまとめてみたいと思います。# N進数から自然指数関数へ
音階の数理表現$2^{n\frac{0-11}{12}}$から出発する。
[「音階論」なる古くて新しい数理空間](https://qiita.com/ochimusha01/items/18cba90c2139c537b0c5)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/c19bae0c-65a0-d380-dc14-df041673961f.png)
![スクリーンショット 2024-02-02 21.44.39.png](https://qiita-im
仮想環境(venv)について
## はじめに
仮想環境(venv)についてに関しての備忘録です。
初心者です😅
間違えてる部分が多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇
## 🦁**結論**🦁
**システムのPython環境を汚染せずに、必要なパッケージのインストールと管理ができて、互換性の問題を避けやすくなるシステム**:::note info
押さえておくべき点
* venvは Pythonでの仮想環境を作るモジュール
* Python3.3以降は標準ライブラリに含まれてる
* 仮想環境は異なるプロジェクト間での依存関係の衝突を防ぐことができる
* **プロジェクトごとに異なるライブラリのバージョンを管理できるため、互換性の問題を避けやすくなる**
* **システムのPython環境を汚染せずに、必要なパッケージのインストールと管理が可能**
* **複数のプロジェクトを同時に進める場合でも、それぞれの依存関係を清潔に保つことができる**
:::
*