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

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

【Tips】kaggle notebookで出力した画像やグラフをコピーする方法

# はじめに
通常、右クリックをすると、「画像をコピー」を選択できますが、kaggle notebookでは選択できません。

↓kaggle notebookで画像を「右クリック」した図
![スクリーンショット 2024-04-06 15.58.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/846404/0637e240-8fa1-88bf-81df-a65b532418da.png)

# 解決策
「shift + 右クリック」でいつものメニューを表示できます

↓kaggle notebookで画像を「shift + 右クリック」した図
![スクリーンショット 2024-04-06 15.59.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/846404/d50f46db-5dbc-4126-d60b-160ad81f5087.png)

これで画像をコピーできます!!

元記事を表示

【ドルコスト平均法】簡単なシミュレーションで遊んでみた🎵

新NISAが話題だが、そこで使われているドルコスト平均法がどういう性質を持つのか興味をもったので、簡単なシミュレーションをやってみた。
ドルコスト平均法の特徴
・長期の定額投資でメリットがある
・定額投資なので下がったときに口数が増加、上がったときは口数減少のため、利益が出やすい

それでは、これらの認識が正しいかシミュレーションをしてみる
手順は以下のとおり実施
・相場が上げているとき
・相場が下げているとき
・相場に上げ下げが同じ勾配で戻ったとき、
  最初上げと最初下げのそれぞれの場合

今回は、ここまで、以下は要望があれば後日
・相場が最初に勾配が大きく下げ、その後ゆっくり戻ったとき
・逆に最初ゆっくり下げ、その後急激に戻ったとき
・最後に、期間を区切って特定の相場に対して、実際の動きをシミュレーションしてみる

### 実データ向けにlibを余分に定義

“`lib.py
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdat

元記事を表示

OpemCVでimshowしたときとimwriteしたときで色が違うときの原因と対策

# 事件
アルファ付きpng画像を重ねて表示したいときに事件は起きた。imreadで背景画像を読み込んだ時には大丈夫なのに、真っ白なキャンバスを生成するためにnp.zerosを使ったときに問題発生。cv2.cvshowで表示したときに色がおかしくなる。**cv2.imwriteで書き出すと思っていた通りの色が出る**

https://qiita.com/smatsumt/items/923aefb052f217f2f3c5

この記事を参考に(ほぼコピペ)、背景画像を読み込むところを、真っ白い画像を生成することによって代替した。
真っ白い画像を生成する(4,5行目)のは**適当にググった** ←伏線
“`py:問題のソースコード(間違ったソースコード)
import cv2
import numpy as np

frame = np.zeros((720, 1280, 3)) #真っ黒画像(ゼロ埋め)
frame += 255 #真っ白画像を生成

#frame = cv2.imread(“bg.jpg”) #特定の画像を読み込むわけではない
png_image = cv2.im

元記事を表示

Pythonエンジニア認定基礎試験の合格体験記(実務経験なし/1週間)

# 1. はじめに
2024年3月に受験したPythonエンジニア認定基礎試験で合格(875/1000)しましたので、合格までの記録を残したいと思います。
# 2. 勉強開始時点でのレベル
・文系大学卒業
・非IT業界の営業職4年間
・ITの知識ゼロで、社内のIT部署へ人事異動(周りの営業職に比べたらexcelが得意だった程度)
・会社の研修で2週間ほどJavaの基礎を学習したが、Pythonは未経験

Javaの学習経験があったためプログラミングに共通する基本的な考え方は理解していましたが、Pythonについては全くの初心者がイチから学んで1週間で合格しました。同じような状況の方の参考になりましたら幸いです。

# 3. Pythonエンジニア認定基礎試験を受験した理由
### ・会社で推奨されている資格の一つだった
会社でIT関連の入門資格としていくつか推奨されているうちの一つでした。
研修で少し触れたプログラミングが意外と面白く、もっと勉強してみたい、せっかくなら資格という形に残れば良い、という思いで受験を決めました。
Javaの研修を受けたのにPythonを選んだのは、単純にJ

元記事を表示

【実装】STDCによる遺伝的プログラミングを用いた為替市場のトレンド反転点の予測

# はじめに

この記事ではSTDCによる遺伝的プログラミングを用いた為替市場のトレンド反転点の予測についてまとめました。

STDCや遺伝的プログラミングについて、「?」という方も問題なく読み進めますのでご安心ください。

元論文は以下になります。

https://repository.essex.ac.uk/29573/1/Class-Regr-Trading.pdf

https://kar.kent.ac.uk/94107/1/174thesis.pdf

:::note warn
**注意**
これは個人で作成したコードです。誤りなどの可能性がありますが、ご容赦ください。
:::

# 1. なぜ実装したか

私は機械学習・深層学習を用いた個人開発をする際に、「自身を含めたユーザが活用を実感できる」をテーマに開発を行っています。

その一環として、以前より株式や為替市場の予測モデル関する論文を読んだり実装をしてきました。正確な予測モデルが実装できれば、EAなどに組み込むことでユーザの金銭的利益につながると考えます。スタンダードなモデルとしては **LSTM** などの時系列

元記事を表示

20240406 日記 pipenvについて、githubのlockについて

### pipenvについて

Pipfileというのがあって、そこに環境ごとに使うpipモジュールを書いていく
そして、`pipenv install` (`–dev`とかつけるとその環境用の)とすると、Pipfileに書かれたモジュールが閉じられた仮想環境向けにインストールされる、という仕組みらしい

これだけ聞くとrubyのbundlerに似てる、と思った。けどbundlerはグローバルにgemをインストールしてくる(`–path vender/bundle`とかでグローバルに入れない方法もあるのは知ってるけど)
Rubyではグローバルに入れる使い方だけど、それで問題になったことはない
一方pythonはなんとなく仮想環境つかってグローバルを汚染しないようにする、という感覚だったけど、何が違うのだろう?

と不思議におもったのでまずBundlerで調べると、まさに自分が思った通りのことをまとめてくれている方がいた
参考:[bundle install時に–path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみよう #Ruby – Qiita

元記事を表示

なんですか? 『写像』って。

# はじめに
– 「写像」ってなんですか?
– 「ロジスティック写像」ってなんですか?
– 「カップルド・ロジスティック写像」ってなんですか?

## 写像
写像(Map)は、数学における概念の一つで、「ある集合の要素を別の集合の要素に対応づけるルールのこと」を指します。写像は、関数(Function)とも呼ばれます。

写像 $f: X \to Y$ は、集合 $X$ の各要素 $x$ に、集合 $Y$ の要素 $y$ を対応づけるルールです。
$X$ を**定義域(Domain)**、$Y$ を **値域(Codomain)** と呼びます。
また、$x$ に対応づけられる $Y$ の要素 $y$ を $f(x)$ と表記し、$x$の **像(Image)** と呼びます。

## 写像の種類

写像には、以下のような種類があります。

### 単射(Injection):
異なる要素が常に異なる要素に写像される写像。 $$\forall x_1, x_2 \in X, x_1 \neq x_2 \Rightarrow f(x_1) \neq f(x_2)$$

“`merma

元記事を表示

台湾の地震情報をLINEに通知する

# はじめに
つい最近、台湾で大きな地震がありましたね。
一人でも多くの無事と一日も早い復興を願ってます。

さて、今回は台湾の最新の地震情報を取得できるAPIについてご紹介したいと思います。
台湾には**中央気象署**という気象業務を行う公的機関があり、日本でいう気象庁のような役割を果たしています。

https://www.cwa.gov.tw/V8/C/

中央気象署は、台湾国内の最新の気象情報を入手できる**オープンデータ**を提供しており、**会員登録**をすれば誰でも無料で利用することができます。

まずは会員登録を済ませましょう。

# 中央気象署会員になる

https://pweb.cwa.gov.tw/emember/register/authorization

1\. 上記のサイトにジャンプし、利用規約を確認したら「同意」をクリックします。
![regi.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720276/e7f07243-7fcb-a6ab-87

元記事を表示

Pythonで「テキストファイルを読み込む」の動作を確認してみた

# 概要

Pythonで「テキストファイルを読み込む」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/file/index2.html

# 実装

以下のファイルを作成しました。
“`sample.py
f = open(‘myfile.txt’, ‘r’, encoding=’UTF-8′)
data = f.read()
print(data)
f.close()

f = open(‘myfile.txt’, ‘r’, encoding=’UTF-8′)
datalist = f.readlines()
for data in datalist:
print(data, end=”)
f.close()

f = open(‘myfile.txt’, ‘r’, encoding=’UTF-8′)
while True:
data = f.readline()
if data == ”:
break
print (data.rstrip(‘\n’))
f.close()

元記事を表示

Globally Coupled Mapの時系列データをCSVファイルに保存する

### Step0. 使用するパッケージ
~~~python:
import numpy as np
import matplotlib.pyplot as plt
plt.style.use(‘ggplot’) #グラフのスタイル
plt.rcParams[‘figure.figsize’] = [8, 3] # グラフサイズ設定
plt.rcParams[‘font.size’] = 10 #フォントサイズ
import random
import pandas as pd
import csv
import warnings
warnings.simplefilter(‘ignore’)
~~~

### Step1. 写像を定義
~~~python:写像を定義
def f(x, alpha):
y = 1 – alpha*x*x
return y

def coupled_f(x_list, alpha, e):
total = 0
y_list = []
num = len(x_list)

for n in range(num):
total += f(x_

元記事を表示

Pythonでわかる基礎問題精講数学1a

1番
“`
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# x, yの範囲を設定
x_range = np.linspace(-2, 2, 100)
y_range = np.linspace(-2, 2, 100)

# (x+y)^3 の計算
X, Y = np.meshgrid(x_range, y_range)
Z1 = (X + Y) ** 3

# (x-y)^3 の計算
Z2 = (X – Y) ** 3

# 3次元プロット
fig = plt.figure()
ax = fig.add_subplot(111, projection=’3d’)

# (x+y)^3 のプロット
ax.plot_surface(X, Y, Z1, alpha=0.5, cmap=’viridis’)

# (x-y)^3 のプロット
ax.plot_surface(X, Y, Z2, alpha=0.5, cmap=’plasma’)

ax.s

元記事を表示

WSL関連の手順まとめ

– [WSLインストール](#WSLインストール)
– [python環境(pyenv + poetry)](#python%E7%92%B0%E5%A2%83pyenv–poetry)
– [docker](#docker)
– [kubernetes(kind)](#kuberneteskind)
– [OpenLens](#openlens)
– [google-chrome](#google-chrome)

## WSLインストール
“`Powershell:PowerShell
# WindowsターミナルがインストールされていなければMicrosoft Storeからインストールしておく
# スタンダードなインストール方法ということで、ストア版のWSL2をインストール
# 初期状態が小さいためDebianを選択
wsl –install -d Debian

# インストールが完了したら、スタートメニューからDebianを選択し、
# 一般ユーザの作成などの初期セットアップを実行しておく
# 以降の手順は一般ユーザが「foo」で作成されている場合を前提とする

#

元記事を表示

【numpy】ndarrayを効率よく使う

# はじめに

`numpy.ndarray`には、インデックス参照、スライス、ブロードキャストといったさまざま機能があります。
本記事では、機械学習でデータを扱う時に遭遇しそうな具体的な状況設定のもとで、それらの便利機能を利用した書き方を紹介します。

目標としては、これらを使うことでシンプルなコードを書くとともに、遅いと言われているfor文をなくしてパフォーマンスを上げることを目指します。

## 対象読者

– `numpy`の色々な書き方を知りたい方
– `ndarray`を使ったコードのパフォーマンスを少しでも上げたい方

[ドキュメント](https://numpy.org/doc/stable/user/quickstart.html#less-basic)を読むことに抵抗がない方は、こちらの”Less Basic”の章などを読んでみると発見があるかもしれません。

## 環境

`Python 3.10.13`
`numpy 1.26.0`

# 行と列を抽出する

二次元配列`x`から、任意の行と列を同時に指定して抜き出す方法です。
紹介する3つの例のうち、下の2つの

元記事を表示

ジョジョの罵倒フレーズを日常生活に活かす

# 背景
筆者は割と男性にナメられることが多いが、優しく温厚な性格であるためその場で言い返すことが結構難しく、時差ではらわたが煮えくり返ったりする。

# 課題
– 面倒なこと、苦手なことはPythonにやらせよう
– 筆者の代わりに、Pythonに漫画『ジョジョの奇妙な冒険』シリーズ(作者:荒木飛呂彦)に登場する汎用性の高い罵倒フレーズからランダムに出力させる

# コード

“`python
import random

jojo_karuta = [
#”アトムみてーな頭”,
“あんたがナマイキな態度とるからよ”,
“あなたを今ここでこの家ごと引きちぎって殺すわ”,
“うっとおしいぜッ!おまえらッ!”,
“うるせぇぇっぞ!”,
“言ってることが分からない…イカレてるのか?…この状況で”,
“衛生観念もない虫けら同然のたかがジジイの浮浪者が よくもこのディオにそんな無礼な口をきけたものだ”,
“おまえは馬鹿丸出しだッ!”,
“おまえは私にとって釈迦の手のひらを飛び回る孫悟空ですらない”,
“関係ない 

元記事を表示

ロバスト回帰におけるRANSAC、MSACモデルの活用

# はじめに
線形回帰はデータ分析において広く使用されている手法ですが、外れ値の存在によって大きな影響を受けることがあります。今回は外れ値に対処するために、ロバスト回帰の手法であるRANSAC(RANdom SAmple Consensus)モデル、MSAC(M-estimator SAmple Consensus)モデルについてまとめていきたいと思います。

# RANSACモデルについて
皆様はRANSACモデルをご存じでしょうか。
ランダムにサンプルを選択し、そのサンプルから線形モデルを推定し、このプロセスを繰り返すことで、最も多くのデータ点をサポートするモデルを最終的に選択します。
また、外れ値の影響を受けない頑健(ロバスト)なモデルを作成することができます。

# MSACモデルについて
では、MSACモデルはどうでしょうか。
こちらのモデルについて調査をしていましたが、情報の少なさには驚きました。
そのため、他の方々がMSACモデルについて調べたときの手助けになればと思い、今回記事にしようと思います。

まず、MSACモデルとはなんぞやと。
端的に言えば、MSACモデルはR

元記事を表示

大規模言語モデルと強化学習:強化学習にLLMを組み込んで実装してみた(ローカルLLM)

# はじめに

最近の機械学習の発展はすごいですね。
特に大規模言語モデル(LLM;Large Language Model)の発展が目覚ましく、ChatGPTをはじめ目に見える形で成果が出始めています。[^1]

[^1]: 大規模”言語”モデルといいつつ言語以外も扱い始めてますね。大規模モデルと言った方が正確なような

この技術の進歩に置いて行かれないようにLLMを勉強しつつ強化学習に実装してみました。
記事としては前半はLLMの利用、後半は強化学習のDQNにLLMを組み込んだ実装となります。

# PythonからLLMの利用

LLMの利用はBERTでもお世話になったHugging Faceを使います。
ドキュメントがかなり充実しており、チュートリアルをベースに進めてみました。

https://huggingface.co/docs/transformers/main/ja/index

また今回実行している環境は以下です。

“`
OS : Windows11
Python: 3.12.2
GPU : GeForce RTX3060(memory 12GB)

元記事を表示

python認定基礎試験3章と4章のまとめ

●pop()

pop()引数が書かれていない場合は最後の末尾を削除する。

●return
“`py
def num(a,b):
return a+b
result = num(20,30)

print(result)

#出力結果
50
“`

●range
range(0,4)
0,1,2,3
range(1,4)
1,2,3,

●enumerate
反復可能体・・・リスト、文字列など
“`py
#iがindexの番号を格納、aに反復可能体の要素を格納
for i,a in enumerate(‘word’):
if i == 2:
print(a)
#出力結果
r
“`

●zip
“`py
for n,c in zip([1,2,3,4],[‘1′,’4′,’9′,’あ’]):
print(c*n)
#出力結果
1
44
999
ああああ
“`

元記事を表示

【生成AIアプリ100チャレンジ】(13)レシピ提案アプリ

https://ai.nuevo.jp/recipe/

# 開発環境

| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。

# 目的
画像解析の生成AIであるvison apiをつかったアプリ。
食材の写真をアップすると、その食材から作ることができるレシピを教えてくれる。
画像の解析精度がまだ低いのですが、精度を高めていてけば、冷蔵庫の画像から食材を見分け、レシピを提案できるようになれば、需要がでてくるのではないだろうか。随時、ブラッシュアップしていきたい。

# コード
“`python:qiita.rb
OPENAI_API_KEY = os.environ[‘

元記事を表示

Slackで独自カスタマイズしたAIと会話してみた〜Lambda(AWS)とPython使用編〜

# はじめに
LLMの進歩著しい昨今、AIを使ってキャラクターとの会話ができるサービスも数多く出てきました。
今回の記事では、Spiral.AI株式会社のTwinRoomというサービスを使い、Slackで独自カスタマイズしたAIと簡単に会話してみます。

この記事で紹介する機能を活用すれば、開発者・企業独自のアプリケーションやサービスに独自カスタマイズしたAIキャラクターを簡単に組み込むことができます。

一例として、今回は自分たちで作ったAIキャラをTwinRoomのAPI経由でSlackに登場させて、会話させてみます。

**記事監修:** [わいけい(@yk_llm_gpt)](https://twitter.com/yk_llm_gpt)

https://zenn.dev/spiralai/articles/8af7cbf526c2e1

# 全体構成
最初に、ユーザーがAIに対するメッセージをSlackに投稿してから最終的にSlack上で返信が返ってくるまでの仕組みについて説明します。

まず、Slackにメッセージが投稿されてからのデータの流れについてです。

今回作

元記事を表示

whileをやっと使えるようになったのでまとめました。

## はじめに
whileに関しての備忘録。

## 🦁**結論**🦁
whileループは条件が真(true)の間、コードブロックを繰り返し実行することができる。
上限数、なくなるまで、あるまで、指定のものが行われるまでなど条件を自身で定義したものを繰り返し実行することができる。
無限ループに気をつけて使う必要がある。

:::note info
押さえておくべき点
* ループ条件がいつかは偽(false)になることを必ず確認する(無限ループの原因になる)
* カウントなどを用意(while外での初期化)して変数を更新(count +=1など)して条件が変わるようにすることで指定回数分のループ処理を行える。
* 無限ループを意図的に使う場合は、while True:を使用(終了条件を明確に定義する必要がある)
* breakはループから抜けるために使う。
* continueは次の繰り返しに直ちに進む。
:::

:::note alert
注意点
* 無限ループに注意が必要。
* 無限ループや非常に長いループは、プログラムのメモリ使用量やCPU使用率を

元記事を表示

OTHERカテゴリの最新記事