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

Python関連のことを調べてみた2023年01月04日
目次

Jupyter/Pythonを使ったHalcon開発環境の構築

## はじめに
画像処理ライブラリはたくさん存在しますが、よくインターネット上で知られているのはOpenCVかと思います。オープンなライブラリなので、コストをかげずに画像処理したい方には十分ですが、周りに使いこなしている方やインターネット上のコミュニティから情報を収集しないと、使いこなしが難しいライブラリのように感じます。趣味、学術分野や詳しい人がいそうな企業であれば問題ないかもしれませんが、画像処理を本業としないけど画像処理を使って業務効率化を目指したい方には敷居が高いです。今回紹介するHalconは、製造業の画像処理が得意なちょっと高価な有償ライブラリで、周りに画像処理が得意な人はいないが、自分は画像処理を使って製造現場の効率化を図りたいと考えている人には最適なソリューションです。国内ではリンクスが代理店をしており、購入後のサポートも優秀ですので、孤独な戦いをする必要なく画像処理を業務に適用できます。
ただ、サポートが優秀でも、どんなことをやりたいのか?は、開発者にしか決められません。なので、とにかくHalconで画像処理で試してみて、やりたいことのイメージを膨らませ、具体的に画像

元記事を表示

【動かして学ぶ! Python Django開発入門 第2版】python manage.py startapp accountsがNo Module nameになる

# 起きたこと
「Chapter10 Djangoに認証機能を追加する」を進めていたときに本に沿って以下を実行したところエラーが表示された。

“`python:ターミナル
python manage.py startapp accounts

Traceback (most recent call last):
File “manage.py”, line 22, in
main()
File “manage.py”, line 18, in main
execute_from_command_line(sys.argv)
File “python3.8/site-packages/django/core/management/__init__.py”, line 446, in execute_from_command_line
utility.execute()
File “python3.8/site-packages/django/core/management/__init__.py”, line 420, in

元記事を表示

PythonZen & PEP 8 検定試験で学ぶ Pythonのするべきことではないこと

# はじめに
本記事は**PythonZen & PEP 8 検定試験**の勘所について記載しています。

Pythonに関する検定及び資格試験は、一般社団法人Pythonエンジニア育成推進協会によって運営されています。

本記事執筆時点では以下に示す4種類があります。

– [PythonZen & PEP 8 検定試験](https://pythonzen-pep8-exam.jp/)
– [Python 3 エンジニア認定基礎試験](https://www.pythonic-exam.com/exam/basic)
– [Python 3 エンジニア認定実践試験](https://www.pythonic-exam.com/exam/jissen)
– [データ分析試験](https://www.pythonic-exam.com/exam/analyist)

PythonZen & PEP 8 検定試験は、2022年3月1日より**無償**で提供されています。
本試験を受けることで、Pythonのするべきことではないことについて、学ぶことができます。

## Pythonの飛

元記事を表示

個人開発:プログラミング初心者がDjangoとTwitter APIでツイート自動まとめBot(リアルタイム)を作成したら予想以上に便利だった件

初心者がゆえ四苦八苦しながら作成しました。その過程と成果を備忘録がてらこちらに残しておきたいと思います。
## まずは完成物のご紹介
完成したサイトは以下になります。
[Tree Pies](https://treepies.com/)
https://treepies.com/
[Twitterアカウント](https://twitter.com/Tree_Pies)

そもそもこれは何かというと、Twitter上に存在するスレッド上のツイートをTwitterAPIを使い、自動でまとめて記事のように表示してくれるアプリケーションになります。

これを使うと以下のような長文スレッドもリプライ一つで記事のようにまとめを作成する事が出来ます。
雑学投稿系SNS Nijiki

みなさん、こんにちは。山田長政です。

最近、SNSを作ったので宣伝します。

Nijikiと言う名前の雑学を投稿するSNSを今回、製作しました。

使用したのは、データベース云々はDjango、Webサイトとかはphpです。

ちなみに、スマホで開くとデザインがバグるので注意してください。

https://nijiki.net

元記事を表示

discord.py V2でButtonを使いたい!(on_button_click)

## はじめに
今回は、discord.py(V2)を普段から使用している人向けの記事となっております。
初学者の方は、
[discord.pyでスラッシュコマンドを使ってみる](https://qiita.com/Luapy/items/3abff9575e132e2955ec)
などを最初に見ておくといいかもしれません。

## discord.py、Buttonでつまずくくね?
最近、discord.pyを使用してBotを書いている知り合いからDMで連絡が来ました。
どうやら、Botを再起動したらButtonが反応しなくなるみたいです。

状況のスクリーンショット

通常↓

再起動後↓
![image.png](https://qiita-image-store.s

元記事を表示

推薦システム知識0の筆者がPytorchでMatrix Factorizationを実装するまで

# はじめに
この記事は推薦システム知識0の筆者が、推薦システムについて調べつつ、パーソナライズありの推薦アルゴリズムとしてメジャーな手法である“`Matrix Factorization“`を実装し、動かしてみるまでを記録したものです。
性能評価や実際の推薦システムにおける使い方までは踏み込めていませんが、参考になれば幸いです。

# やったこと
– 推薦システムについて知る
– 推薦するためのメジャーな手法を知る
– PytorchでMatrix Factorizationを実装する
– MovieLens Datasetで動かしてみる

# 推薦システム(Recommender system)とは
**ユーザーに意思決定支援を行うシステム**のことです。
具体例としては、ECサイトを訪れたユーザーにおすすめ商品を表示したりするといったシステムが考えられます。
推薦システムにおけるKPIは、クリック率、売上、購入者数など、適用先によって選択されるようです。
推薦システムと類似の言葉として「推薦エンジン」が使われている文献もありましたが、同義で使われている印象でした。

# 推薦

元記事を表示

AtCoder Beginner Contest 122 B – ATCoderの解説を書いてみた

今回はB – ATCoderの解説でも書いてみようと思います。

こちらからアクセスできます

https://atcoder.jp/contests/abc122/tasks/abc122_b

# ①考え方
Sの部分文字列の中でATCG文字列(A, T, C, Gのみを含む文字列)の最長のときの長さを出力して欲しいというわけですね。
ではどのようにすればいいでしょうか?
入力例1をもとに考えていきましょう。
“`:入力例1
ATCODER

ATCODER
TCODER
CODER
ODER
DER
ER
R
という感じの文字列にして探索していくことで求められないかな~と考えていきます。
(cnt = 0を用意しておきます)
それぞれの文字列に対して最初から順にA, T, C, Gの文字数を
数えていき(cnt = cnt + 1)、
それ以外の場合、
次の文字列に移ります(cnt = 0と初期化しておきます)。
あらかじめans = 0というのを用意して次の文字列に移る前に、
ans = max(ans, cnt)をとり、最長時の値を

元記事を表示

Pythonのバグ技 —— クラス以外を継承する

# どういうこと??

Pythonでのクラスの継承は次のように書きます。

“`python
class B:
“””The base class.”””

class C(B):
“””A new class that inherits B.”””
“`

ここでの`B`はクラス、言い換えれば`type`型である必要が…ありません。

# クラス以外を継承する方法

適当なオブジェクトを用意します。

“`python
class _X:
pass
B = _X()
“`

このオブジェクトに`__mro_entries__`を追加します。`__mro_entries__`は、(クラス以外のオブジェクトを含む)全て継承元の型を引数に、(クラスのみからなる)実際の継承元の型を返すようにします。この特殊メソッドが継承時に呼び出されます。

“`python
B.__mro_entries__ = lambda bases: (str,)
“`

これで`str`のサブクラスが定義できます。

“`python
class C(B):
p

元記事を表示

Pythonのtweepyでツイッターのいいねした画像をダウンロードをしたかった

Pythonでツイッターのいいねした画像を保存しようと思ったところ色々記事が上がっていたがシンプルな物が見当たらなかったので作ってみた。
とりあえずツイッタータイムライン、いいねの画像を保存したい人向け。

コピペするだけじゃ動かない。
①TwitterAPIの設定
②画像の取得件数を設定。(デフォ200件)
③画像を保存するディレクトリを指定してあげる。
※いいねした画像を保存したいなら自分のユーザーネームを指定してね。

# Twitter APIの設定
TwitterAPIの取得の仕方は調べればすぐに出てくるので割愛。
各シングルクォーテーションの間に取得したキーを入れてね。

# Twitter APIを利用するためのキーを設定
CONSUMER_KEY = ‘your consumer key’
CONSUMER_SECRET = ”
ACCESS_TOKEN = ”
ACCESS_TOKEN_SECRET = ”

# OAuth認証を行い、APIクライアントを作成
auth = tweepy.OAuthHandle

元記事を表示

HomebrewでPythonをインストールし、pyenvとvenvを使用する方法(Mac M1)

# 概要
* Mac M1にて、HomebrewでPythonをインストールしたので、表示されたエラーメッセージなども含めてその方法を記しておく。

## 環境・前提
* Mac
* 機種ID:MacBookPro18,3
* macOS:Monterey
* チップ:Apple M1 Pro
* メモリ:16GB

* Pythonをインストールする方法は以下の3通りがあるが、今回はHomebrewを利用したインストールとする。Homebrewとは、ソフトウェアの導入をシンプルに行うことができるパッケージ管理システム。
* Homebrew版Python環境(pipでパッケージ管理が可能)
* 公式版Python環境(pipによるパッケージ管理が可能・Windows版は推奨)
* AnacondaやMiniconda(condaによるパッケージ管理・pipと併用できない)

* 元々、Python勉強用の講座でanaconda3を導入していたが、pipで管理したいことから、anacondaディレクトリを削除してから実施することと

元記事を表示

お正月っぽいプログラム

今回は、Qiita投稿のテストも兼ねて投稿を行っている。

皆さんはプログラムでハングマンというゲームを知っているだろうか。

ルール

ルールは簡単
作成者が決めた文字や数字を当てるゲームになっている。
間違えると配列に格納されているハングマンの絵が1行づつ出力され最後まで出力されるとゲームオーバー
ハングマンが完成する前に当たられればゲームクリアとなる。

↓この画像見たいなイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702878/e6c8aa52-92b4-4a0c-bc92-aaa2b4e3cff4.png)

今回はこのプログラムのお正月バージョンを作成した。
といっても絵と答えが変わっただけど。。

ちなみに今回はpythonで書かれている。

“`python
def keyWord(word):
wrong = 0
stages = [“”,
” _〆 “,

元記事を表示

GPT-3 APIの出力結果に、予期しない改行が挿入されている場合の対処法

# 課題
 GPT-3 APIを使用したサービスを作っているときに、出力結果に予期しない改行が挿入される問題が発生しました。
 GPT-3 API 出力結果 改行 いらない」などで検索しても、解決方法がすぐに出なかったため、ここで共有させていただきます。
 予期しない場合に改行が発生したケースは、以下のような場合です。出力結果の先頭に、改行が2回されています。
![Chill_Guys 2023_01_03 20_55_38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082957/b48a65b2-4672-cf95-fb04-6dd1fcaf3d39.png)

# 結論
結果の文字列に対して、改行を””(空文字列)に置換する。

# 具体的なコード(GASを使用している場合)
結果の文字列は、`json[“choices”][0][“text”]`です。
“`javascript:変更前
return json[“choices”][0][“text”];
“`

“`jav

元記事を表示

プロ野球直近3年間 球団同士の得点数・失点数の関連(パ・リーグ編)

[セ・リーグ編](https://qiita.com/Chigiri__11/items/801702fa3bf3f7b22513)に続きパ・リーグ編も分析してみようと思う。
## 以下手順

1.プロ野球パリーグチーム別の直近3年間の得点数と失点数の平均を取得する。
2.x軸に得点数、y軸に失点数*(-1)の2次元グラフを作成する。
3.その散らばりを偏差値 – 50 の値で球団同士の無向グラフとして描画する。

実行環境:Google Colaratory
使用テキストファイル1:network2.txt(各球団の標準偏差)
使用テキストファイル2:coord2.txt(各球団の[得点数偏差値,失点数偏差値]の座標)
[上記2種類のテキストファイル](https://drive.google.com/drive/folders/1wjnhOxzYokBvKsvSAw4WOrw-Gbh81gKf?usp=sharing)

## 以下コード

### データフレーム作成
“`
import pandas as pd
”’ データフレームを制作(順に2020,2021,2022)

元記事を表示

StarlarkとPythonの違い

# はじめに

StarlarkはPythonの方言で、Bazelの構成ファイル等で使用されています。

https://github.com/google/starlark-go

コマンドをインストールすれば、スクリプトの実行やREPLも使用可能です。

“`
$ starlark
Welcome to Starlark (go.starlark.net)
>>> print(“Hello, world!”)
Hello, world!
“`

基本的にPythonと互換性があるのですが、一部Starlark特有の機能もいくつかあるため記事にまとめました。

# 無限ループがデフォルトで無効

Starlarkはデフォルトでは無限ループできません。再帰や `while` を使うとエラーが発生します。

“`
$ starlark
Welcome to Starlark (go.starlark.net)
>>> def fact(n):
… if n <= 0: ... return 1 ... return n * fact(n-1) .

元記事を表示

OptunaでScikit-learn, Kerasのパラメータチューニング

# はじめに

Optunaを使用してScikit-learn、Kerasのパラメータチューニングを行ってみました。使用したデータは2001年以降の日経平均株価で、ハイパーパラメータをチューニングしたとき、しないときでのリターンがどのように変化するかを比較しています。
※Optunaは、Preferred Networks社が開発しているハイパーパラメータを最適化するためのフレームワークです。

Optuna

# 日経平均株価の取得

まずは日経平均株価を取得します。2022年12月からpandas_datareaderで株価が取得できなくなったようなので、yfinanceでpandas_datareaderをオーバーライドして取得するようにしています。取得したデータは再利用できるようにpickle形式で保存しています。取得した株価の終値をグラフにしてみます。

“`python
import os
import sys
import dateutil
import pickle
import pandas

元記事を表示

[Python]スライスで文字列を反転させる

スライスはいいぞ。

# 方法
“`py
s = “aiueo”
s = s[::-1] # <- ここで反転 print(s) # "oeuia" ``` # しくみ スライスの引数は、それぞれ以下の意味を持ちます。 ``` [始点:終点:ステップ] ``` 値を代入しなければ、自動的に初期値が挿入されます(それぞれ0, 文字列長, 1) このうち、**ステップ**というものに注目。 これは、スライスが処理する中の繰り返しで**インデックスに加算される値**です。 普段は1なので、頭から一文字ずつ。 ここを2にすると、最初の文字から**1つ飛び**で処理していきます。 インデックスが`0->2->4`と飛ぶからですね。

で、`-1`はというと。
**始点と終点をひっくり返す**効果を持っています。
つまり、文字列の終わりから一文字ずつ処理するんですね。

つまり、「後ろから一文字ずつ並べていく = 文字列が逆になる」という感じです。

元記事を表示

vimでインデントの設定がpythonのときに反映されないときの対処法

インデント、タブを半角2文字にするため、`.vimrc`に以下のように記述した。
“`
set tabstop=2
set softtabstop=2
set shiftwidth=2
“`
しかし、pythonのときだけ反映されず4文字になる。どうやらpythonはデフォルトで何かあるようで、それを無効にするため(?)に以下を`.vimrc`に追加すると、無事反映されて2文字になった。
“`
let g:python_recommended_style = 0
“`

元記事を表示

gokart で言語処理100本ノックをやってみる

## gokart とは

[gokart](https://github.com/m3dev/gokart) はエムスリーが開発している機械学習パイプラインツール。 Spotify により開発されている [luigi](https://github.com/spotify/luigi) のラッパーになっていてより簡単に書くことができる。
NLP の機械学習モデルを開発していると前処理、事前学習、ファインチューニング、可視化などなど工程が多く、管理が大変になる。パイプラインツールを使って楽になりたいということで、[言語処理100本ノック2020 Rev2](https://nlp100.github.io/ja/)の[機械学習パート](https://nlp100.github.io/ja/ch06.html)で試してみる (56, 57, 59は gokart 的に新しい操作がないため飛ばす)。
[公式情報](https://speakerdeck.com/vaaaaanquish/gokartfalseyun-yong-toke-ti-nituite?slide=25)とし

元記事を表示

[python] Djangoでurlを取得し、QRCodeを作成する

# はじめに
QRCodeによる現場管理を構想しているので、DjangoでQRCodeの生成方法をまとめておく。
こういうのは知ってて利用するよりも、その都度、調べるしかないですね。
# 環境
Django 3.1.13
python 3.9
qrcode 7.3.1
“`
pip install qrcode
“`
# Code
## QRCode作成
“`python:view.py
import qrcode
import qrcode.image.svg
from io import BytesIO

def show_work(request, work_id):
work = Work.objects.get(pk=work_id)

url = request.build_absolute_uri()
# 表示されるurlを取得

factory = qrcode.image.svg.SvgImage
img = qrcode.make(url, image_factory=factory, box_size=10)

元記事を表示

OTHERカテゴリの最新記事