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

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

【作業メモ】ラズパイ3ubuntu serverをインストールしてpython開発環境を構築

# 概要
自宅のラズベリーパイ3にubuntu serverをインストールして、pythonを使えるようにして、flaskアプリを起動するようにしたので、同じことをやりたいときのための作業メモ。

# ubuntu serverのインストール
## OSの選定
raspbianとubuntu serverで迷ったが、Web上の情報量の多さからubuntuのほうが何かと使いやすそうだと判断し、ubuntu serverを選択した。昔はraspbianしか使ったことなかったが、最近はubuntuも公式でraspberrypiへのインストールにしたらしいので。

デスクトップは不要なので、ubuntu desktopではなく、ubuntu serverを選択した。

軽く調べた感じ、デスクトップを使わないならubuntu server on ラズパイ3は、重たいということはなさそう。

## SDカードへの焼き込み

[raspberrypi imager](https://www.raspberrypi.com/software/)を使った。環境はmac(M1)。昔はddコマンドでやってい

元記事を表示

NordvpnをDocker上で動かしてproxyにする

# 背景
スクレイピングをする際にnordvpnの[Windowsソフト](https://nordvpn.com/ja/download/windows/)を使用してPCをVPNを繋いでいた

この方法だと通信速度が遅くなったり、ゲームとの接続が切れたり、[Googleに接続できない](https://www.reddit.com/r/nordvpn/comments/13updx2/i_can_no_longer_use_google_when_nordvpn_is_active/)などの問題に悩まされたのでその解消方法の一案としてNordVPNのProxyを立てることにした。

# 手順
## 使用するDocker Image
Docker hubにある[jeroenslot/nordvpn-proxy](https://hub.docker.com/r/jeroenslot/nordvpn-proxy)を使用する。[github](https://github.com/Joentje/nordvpn-proxy)

## ユーザー名とパスワードを取得する
サービス -> Nor

元記事を表示

Python 文字列のメソッドチェーン:strip()、lower()、replace() を組み合わせて文字列処理を効率化

## 記事の概要

Pythonにおける文字列処理は、データクリーニングやテキスト分析などの場面で頻繁に使用されます。本記事では、`strip()`、`lower()`、`replace()` といった基本的な文字列メソッドを組み合わせて使用する「メソッドチェーン」という技法に焦点を当てます。この手法を使うことで、コードをより簡潔に、そして効率的に書くことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/54c76d1e-f98e-d0f0-ee2a-9739303a4702.png)

## サンプルコード

以下に、メソッドチェーンを使用した文字列処理の例を示します:

“`python
def clean_text(text):
return text.strip().lower().replace(” “, “_”)

# テスト用の文字列
sample_text = ” Hello, World! ”

# メソッドチェーンを使用して

元記事を表示

pythonでgnuradio その23

# 概要
pythonでgnuradioやってみた。
練習問題やってみた。

# 練習問題
vocoderを使え。

# サンプルコード

“`
from gnuradio import gr
from gnuradio import audio
from gnuradio import blocks
from gnuradio import filter
from gnuradio import vocoder

def build_graph():
sample_rate = 8000
scale_factor = 32000
tb = gr.top_block()
src = audio.source(sample_rate)
src_scale = blocks.multiply_const_ff(scale_factor)
interp = filter.rational_resampler_fff(8, 1)
f2s = blocks.float_to_short()
enc = vocoder.cvsd_encode_sb()
dec = vocode

元記事を表示

pandasのto_csvでの文字化けエラーの原因を探す

このようにpandasを `cp932` や `shift-jis` でファイルに吐き出そうとすると、

“`python
df.to_csv(‘tmp.csv’, encoding=’cp932′)
“`

こういったエラーが生じるケースがあります。

“`
UnicodeEncodeError Traceback (most recent call last)
in ()
—-> 1 df.to_csv(‘tmp.csv’, encoding=’cp932′)
5 frames
/usr/local/lib/python3.10/dist-packages/pandas/io/formats/csvs.py in _save_chunk(self, start_i, end_i)
318
319 ix = self.data_index[slicer]._format_native_types(**s

元記事を表示

【自分の勉強用メモ】クローラー開発の備忘録2024/08/18ゆきこ

# クローラー開発で活用する知識
:::note info
★やりたいこと:「次へ >」のボタンを押下して画面遷移したいです。※クリックしたい
以下が例です。

EC.element_to_be_clickable((By.LINK_TEXT, “Next”))
おそらく、「次へ >」でヒットするはずなのですが、スペースや半角・全角などを正しく設定してみてください。
それでダメなら、「次へ >」で試してみてください。

あるいは、以下のようにclass nameで取得してみてください。取得できない場合は、next以外でも試してください。

EC.element_to_be_clickable((By.CLASS_NAME, “next”))
②技術検証はなさらなくて大丈夫なのですが、ナンバリングの空白のところにナンバリングの数字を入れて、検索実行することって可能なのでしょうか??

これは実際のページで動作確認しないと検証できません。実行できないのであれば不可能かと思われます。
:::

:::note warn
“★クエリパラメーターでページ遷移するには?
ページを開いたときに、UR

元記事を表示

Pythonでリスト内の最頻値を簡単に求める方法

## はじめに

こんにちは!今回は、Pythonを使ってリスト内の最頻値(最も頻繁に出現する要素)を求める簡単な方法をご紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/8bc2c6bf-fd2a-a699-d206-200de32c12bb.png)

## はじめに

データ分析や統計処理をする際、ある集合の中で最も頻繁に現れる値(最頻値)を求めることがよくあります。Pythonには、この処理を簡単に行うための便利な方法がいくつかあります。

## 方法1: Collectionsモジュールを使う

Pythonの標準ライブラリにある`collections`モジュールの`Counter`クラスを使うと、最頻値を簡単に求めることができます。

“`python
from collections import Counter

def find_mode(numbers):
counter = Counter(numbers)
retur

元記事を表示

長い処理を外部から都合のいいタイミングで停止するメモ

# 外部から処理を止めたかった

とある、長い処理を行っていたのだが途中で止めたい事が発生しました。
問題は、処理の途中で止まると都合が悪い作りになっていました。
その為、停止タイミングをプロセス側で都合の良い時に停止できる仕組みを実装した時のメモとなります。

“`test.py
import time
from task import Task

def is_some_conditions(c):
“””何かの継続条件を判定”””
return c < 10 count = 0 with Task() as t: while t.is_doing() and is_some_conditions(count): # 長い処理A print(f"\r{count} - doing A ", end='') time.sleep(3) # 長い処理B print(f"\r{count} - doing B ", end='') time.sleep(3)

元記事を表示

スプライン補間と超解像畳み込みニューラルネットワーク(SRCNN)による高解像化の比較

## 概要

SRCNNとスプライン補間はどちらも画像の解像度を向上させるための手法ですが、アプローチや適用範囲が異なり、それぞれの強みと弱みがあります。どちらが「良い」かは、特定の用途や目的に依存します。

### スプライン補間
スプライン補間は、画像の解像度を上げるための古典的な数学的手法です。画像のピクセル間の値を滑らかに補間することで、新しいピクセルを生成します。スプライン補間には、バイキュービック補間や双三次補間といった具体的な手法があり、これらは次のような特徴を持ちます。

#### 長所
– **計算が高速**: スプライン補間は比較的計算が簡単で、処理速度が速いです。リアルタイム処理が求められるアプリケーションに適しています。
– **実装が簡単**: 数学的な背景がしっかりしており、実装が容易です。
– **ハードウェア依存性が低い**: 特別なハードウェアや大規模なリソースを必要としません。

#### 短所
– **ディテールの欠如**: スプライン補間は、画像内の新しいピクセルを単純な数学的ルールに基づいて生成するため、シャープなエッジや細かいディテールを復元

元記事を表示

自分のPCのマシンスペックの確認

## 概要

自分のPCのマシンスペックを確認するための、Pythonのコードです。

### ライブラリのインストール
“`
pip install psutil
“`

### コード全文
“`
import platform
import psutil

def get_system_info():
info = {}
info[‘OS’] = platform.system()
info[‘OS Version’] = platform.version()
info[‘Architecture’] = platform.machine()
info[‘Processor’] = platform.processor()
info[‘CPU Cores’] = psutil.cpu_count(logical=False)
info[‘Logical CPU Cores’] = psutil.cpu_count(logical=True)
info[‘Memory (Total)’] = f”{round(p

元記事を表示

Pythonのasync/await

Pythonの`async`と`await`キーワードは非同期タスクを管理するために使用されます。

非同期プログラミングは、他のタスクをブロックすることなく複数のタスクを同時に処理できるようにします。Pythonでは、コルーチンを使用してこれを実現します。

`async`キーワードは、関数を非同期コルーチンとして定義するために使用され、`await`キーワードはコルーチン関数内で別のコルーチンの実行を待つために使用されます。

### コルーチンとは何か?
コルーチンは、特定のポイントで実行を一時停止し、再開する機能を持つ通常の関数とほぼ同じです。これにより、非ブロッキング動作が可能になり、コルーチンの実行が遅延した場合や、他のコードを実行するために意図的に実行を一時停止することができます。

コルーチンはジェネレータ関数と非常に密接に関連しています。実際、Python 3.5で`async`と`await`が導入される以前は、ジェネレータ関数を特別な方法で使用してコルーチンを実装していました。

Python 3.5以降のバージョンでは、`async`と`await`という2つの

元記事を表示

pyenvによるPythonインストール手順

# 概要
pyenvによるPython環境を構築する必要が有ったので実施したが、ライブラリのインストールでかなりはまったので、記録を残しておきます

# 環境
Ubuntu 18.04 on WSL2
pyenv 2.4.10

# 構築手順
– ここではWSL2での操作手順となります。Mac、Windows OS 上へのインストールの場合は[公式サイト](https://github.com/pyenv/pyenv) をご確認ください
## pyenv インストール
“`bash
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
“`

## Pyenv のシェル環境を設定
“`bash
echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.bashrc
echo ‘command -v pyenv >/dev/null || export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.bashrc
echo ‘eval “$(pyenv init -)”‘

元記事を表示

NiceGUI ネイティブアプリの作成向けTIPS②

# NiceGUI ネイティブアプリの作成向けTIPS
自分の備忘録としても。ネイティブに限らないけど。

# ネイティブモード時のズーム設定について

自分はブラウザの表示設定を大体80%ぐらいにしています(単純に自分の好み)。NiceGUIアプリをWebブラウザで表示させている時はよいのですが、ネイティブモードで動作させると当然100%相当で表示されるので(個人的には)表示が大きくて少し気になる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123579/0d45885e-e3bf-8b17-d183-9f3d29c80759.png)

左が80%のWebブラウザ表示。右がネイティブモードの表示。

というわけで、pywebviewのJavascriptを実行するAPIを使ってズーム設定を変更します。

“`python
app.native.main_window.evaluate_js(“document.body.style.zoom = ‘80%'”)
“`

ただ

元記事を表示

コーディングの忘備録

### はじめに
プログラミング学習をしている中で、気になった箇所をまとめました。

#### 初期値がFalseのリスト作りたい時
“`
[False] * N
#Nは個数
“`
#### 初期値がNoneのリストを作りたい時
“`
[None] * N
#Nは個数
“`
#### 文字列の前後にある空白や改行を取り除きたい時
“`
name = ” 田中 マルクス”
rename1 = name.strip()
“`
### 取り除きたい文字を指定して取り除く時
“`
name = “田中 マルクス”
rename1 = name.rtrip(“マルクス”)
“`
### 文字列や数列の状態にあるデータをリストにしたい時
“`
title = “all you need is kill”
retitle = title.split()
print(retitle)
“`
### 文字列や数列の状態にあるデータを右側から順にリストにしたい時
“`
title = “all you need is kill”
retitle = title.rsplit()

元記事を表示

Google ColabでLightAutoML(LAMA)を試す

# はじめに
最近のKaggleのテーブルデータのコンペでLightautoML(LAMA)というAutoMLが使われているので、試してみました。

# LightAutoML(LAMA)
**LAMA**は表形式のデータを扱うタスクに使えるオープンソースのAutoMLのライブラリです。従来のAutoMLがニューラルネットワークのような計算量の多い手法を使っていたのに対して、少数のGBDTと線形モデルに集中することで、処理速度と性能のバランスを保ち効率を向上させています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3691958/c1795f9d-fe94-d477-1bbd-adbd9fa1c227.png)

https://lightautoml.readthedocs.io/en/latest/

https://arxiv.org/abs/2109.01528

# Colabでの実行

有名なTitanicのデータを使ってLightAutoMLの実力を確認します。

h

元記事を表示

【Python】文字列操作について

# はじめに
Pythonにおける文字列操作についてはとても便利なため、使用方法を紹介したいと思います。
文字列操作についてはJavaの場合、先頭2文字を取得する場合は“`”abcdef”.substring(0,2)“`と記載しますが、Pythonの場合、先頭2文字を取得したい場合は“`”abcdef”[0:2]“`とすれば先頭2文字を取得できます。
コードがとても簡易的です。

ということでPythonの文字列操作について紹介したいと思います。
# 文字列操作について

|演算|概要|例
|—|—|—|
|“`s[:i]“` “`s[0:i]“`|文字列sの0番目の要素からi番目未満の要素まで取得|s[:5]の場合、0番目の要素から5番目未満の要素までの文字列を取得します|
|“`s[i:]“`|文字列sのi番目の要素から全ての文字列を取得|s[5:]の場合、5番目の要素から全ての文字列を取得します|
|“`s[i:j]“`|文字列sのi番目の要素からj番目未満の要素までを取得|s[5:6]の場合、5番目の要素から6番目未満の要素までの文字列を取

元記事を表示

Google Colabでまだまだmatplotlibの日本語表示が豆腐不可避な方に(2024/08/18時点)

## 1.想定する読者
* 1-1.以下の記事を見てgoogle colabの日本語化を済ませたのに、また**2019年10月下旬からまた豆腐に悩まされている皆様(筆者含む)。**
* Colaboratoryでmatplotlibの日本語表示
* https://qiita.com/unvavo/items/a907cb927bdadc1d8d0c 
* https://qiita.com/siraasagi/items/3836cedede350280ec42
* https://qiita.com/siraasagi/items/d72f60c25b30269d89e4
* 1-2.matplotlibを使う時、以下のエラーが出る人

“` ERROR.log
findfont: Font family [‘IPAGothic’] not found. Falling back to DejaVu Sans.
/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_agg.py:211

元記事を表示

海洋データ分析のためのSeabornとPythonチュートリアル

## はじめに

このブログでは、SeabornライブラリとPythonを使用して海洋データを視覚化する方法を20章に分けて解説します。各章には詳細な説明とサンプルコードが含まれています。

## 第1章: Seabornの基本

Seabornは、Pythonの強力なデータ可視化ライブラリです。Matplotlibをベースにしており、統計グラフの作成を簡単にします。この章では、Seabornの基本的な使い方を学びます。

“`python
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# サンプルデータの作成
data = pd.DataFrame({‘水温’: [20, 22, 21, 23], ‘深度’: [0, 10, 20, 30]})

# 散布図の作成
sns.scatterplot(x=’深度’, y=’水温’, data=data)
plt.title(‘水深と水温の関係’)
plt.show()
“`

この例では、水深と水温の関係を散布図で表現しています。S

元記事を表示

ABC367回答メモ

# 0.はじめに
 とりあえずDまで目標で挑みましたが、Cが精一杯でした。
 D、Eも解説を見ながらなんとなくわかりましたが
 解答例をなぞっただけで理解度は60%といったところ・・・。
 D以降の難易度が高かったためか、レートは-1と微減でした。

# 1.A – Shout Everyday
 Aにしてはややこしい問題。
 叫ぶ時刻が就寝時刻より遅い場合、起床時刻が叫ぶ時刻より早ければYes、遅ければNo
  0寝起叫24→Yes
  0寝叫起24→No
 叫ぶ時刻が就寝時刻より早い場合、起床時刻が叫ぶ時刻より遅ければYes、早ければNo
  0叫寝起24→Yes
  0叫起寝24→No
 と、0時をまたぐケースが今一場合分けが甘いと思つつ提出したところ、WAを食らいました。
 
 さらに場合分けをして
 叫ぶ時刻が就寝時刻より早い場合、起床時刻が叫ぶ時刻より早ければYes
  0起叫寝24→Yes
 叫ぶ時刻が就寝時刻より早い場合、起床時刻が就寝時刻より遅ければYes
  0叫寝起24→Yes
 上記以外の場合No
  0叫起寝24→No
 としたところACとなりました。
 ち

元記事を表示

動画生成AIは、4次元重みテンソルニューラルネットワークが効くのかな。

![72ad17ba-1b72-4f7a-a9ff-2688057e6f78.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/4369b0f8-bbc0-310f-bcdd-3bb9c00c09b1.png)

### ショートストーリー: 動画生成AIと4次元テンソル
東京の夜は、人工の光が溢れる中で、篠田という名のプログラマーが深い思索に耽っていた。彼は、AI分野の最前線で働くエンジニアであり、最近話題になっている動画生成AIのプロジェクトに取り組んでいた。しかし、篠田はその限界に直面していた。

現在の動画生成AIの多くは、単純な2次元の画像フレームを入力し、次のフレームを予測するという方法に依存していた。だが、篠田は気づいていた。このアプローチでは、動画の動きや時間の流れを捉えることができず、生成される映像はどこか不自然であった。

「どうすればいい…」篠田は自分に問いかけた。動画の中の時間的な動き、空間的な変化、それらをすべてニューラルネットワークに学習させるには、もっと

元記事を表示

OTHERカテゴリの最新記事