Python関連のことを調べてみた2022年12月29日

Python関連のことを調べてみた2022年12月29日
目次

【TIPS】cloud9でpythonのコマンドを打つとエラーが出たのでバージョンを上げる

# やりたいこと
cloud9でテスト環境を作成した際にpythonのコマンドを確認すると以下のようなエラーが出た。pythonのバージョンが古そうな感じがしているのでアップグレードをして対応したい。

“`
hogehoge:~/environment/python $ python -v
import _frozen_importlib # frozen
import _imp # builtin
import ‘_thread’ #
import ‘_warnings’ #
import ‘_weakref’ #
# installing zipimport hook

~~~~長いので省略
“`

# 手順

“`
$ git clone https://github.com/pyenv/pyenv.git ~/

元記事を表示

著作権フリーの地図画像(著作権表示、中心ピン、地名入り)を一気に作成する [Python + staticmap + OpenStreetMap]

# 概要

– OpenStreetMap の著作権フリーの地図画像を取得したい
– Python 用ライブラリの staticmap を使って OpenStreetMap の画像を取得する
– 右下に著作権表示を入れる
– 中心にピン画像を表示
– ピンの上に地名を表示
– これらを一度に行なって、PNG画像で保存する

# 環境

– macOS Monterey + Python 3.9

# パッケージのインストール

“`
pip install staticmap
“`

# ピン画像の用意

– 著作権フリーのピン画像を用意してください。
– ファイル名を map_pin.png にして、プロジェクトルートに設置しておく
– 私が Affinity Designer でサクッと作ったピン画像を載せておきます。ご自由にお使いください。

![map_pin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320718/fb540542-bdd8-0467-c2a5-db90f369ca4c

元記事を表示

Pythonで画像のエッジ検出と直線検出をする

# 1.概要
みんな大好き大乱闘スマッシュブラザーズ(以下スマブラ)!!
私事ながら,スマブラ配信をしています.[チャンネル登録お願いします!](https://www.youtube.com/channel/UCKys_FIMcKfIn5L4HOyy0vQ)
スマブラ×機械学習でなんかできないかなー,と思っていたところこんな記事を発見しました.
[画像認識でスマブラの戦績を自動で作成するツールを作ろう](https://note.com/kelp168/n/nf717de3a2d22)
最終的に何を作るかは置いといて,面白そうだしとりあえずやってみよう!

前回,[Pythonで指定した範囲のスクリーンショットを撮る](https://qiita.com/kenshin-627/items/56b4d945ac63ad8c541c)ことができました.
今回の目標は,前回撮った画像からエッジ検出と直線検出をすることです.
こんな画像から,
![before.png](https://qiita-image-store.s3.ap-nor

元記事を表示

LUKEとBERTの感情分析の精度を比較してみた(自作のモデルvs既存のモデル)

こんにちにゃんです。
水色桜(みずいろさくら)です。
今回は[前回の記事](https://qiita.com/Mizuiro__sakura/items/2dd4430cdee689dc2ddc)で自作した感情分析モデル(LUKE)と[既存の感情分析モデル(BERT)](https://huggingface.co/daigo/bert-base-japanese-sentiment)に関して精度面の比較をしていきたいと思います。

# 結論
**自作したモデル(LUKE)の方がエラーが小さく、正答率も高かった。**

“`ruby:
BERTを用いた際の誤差は0.3238277062095497
BERTを用いた際の正答率は35.29411764705881%
LUKEを用いた際の誤差はtensor(0.2048, grad_fn=)
LUKEを用いた際の正答率は49.01960784313723%
“`
 
もしLUKEの感情分析モデルを使用したいという方は下記記事から初心者でも簡単に(たった2ステップ)使用できますので、使ってみてください。

h

元記事を表示

相関はご近所さん?因果はアクション?

# はじめに

私が統計を勉強してきた中で特に重要だと思った「相関関係と因果関係」について解説していこうと思います!

この「相関関係と因果関係」の違いがわかると、なぜデータを可視化するだけでは因果関係を説明できないのかといった統計分析を行う意義がわかると思います!

特に、統計を全く知らないよという方でも理解していただけるように噛み砕いて説明しているのでご安心ください。

それでは一度、相関関係と因果関係の定義をおさらいしましょう。
最初にしっかりとした定義を説明した後でわかりやすく噛み砕いて説明します!

# 相関関係とは

相関関係とは、ある要素とある要素が互いに関係しあっていることを表します。

いわば、ご近所さんのような関係になっています。なぜなら、相関係数のみではそれぞれの要素はどちらかに対しての原因や結果なのかどうかは変わらないため、たまたま隣になったご近所さんだ!って持ってもらうのが一番いいです。

例えば、3年B組のクラス30人の数学と国語の点数を以下のようになグラフで見ると、「数学の点数が高いほど、国語の点数が高い」また、「数学の点数が低いほど、国語の点数が低い」こ

元記事を表示

Pythonコード内でCPU/メモリ使用率を監視する

# Pythonコード内で確認したい
topコマンドでも確認できますが、コード内で監視したい場合、次のようにします。

“`python
import psutil

cpu_percent = psutil.cpu_percent(percpu=True)
mem = psutil.virtual_memory()

print(‘cpu: ‘,cpu_percent)
print(‘memory: ‘,mem)
“`

>cpu: 51.4000 55.5000
memory: 17.9

一定の時間間隔で監視する場合は、

“`python
import psutil
import threading
import time

def monitor_cpu(initial_time,event):
print(“START monitor_cpu”)
while not event.wait(0.1):
elapsed_time = time.time() – initial_time
cpu_percen

元記事を表示

【Python】ファイル読み込み時にデコードエラーの行をスキップする

Webスクレイピングで取ってきたテキストデータなど、大量の有象無象の文章をPythonで読み取ろうとする際のデコードエラー`’XXX’ codec can’t decode byte XXX in position XXX: illegal multibyte sequence.`、ありますよね。

エラーが起きる文字を無視するだけなら、ファイルを開くとき
“`Python
open(“ファイル名”, errors=”ignore”)
“`
とするだけで事足ります。

しかし、これでは
`タイ文字「ผิดพลาด」は「エラー」という意味です`

`タイ文字「」は「エラー」という意味です`
になってしまいます。(タイ文字はデコードエラー文字のメタファーとして扱ってるだけです)

テキストマイニングのような大量の文章を扱っているとき、わざわざこのような壊れた文章を処理に取り入れなくていいってなりますよね?(もちろん、そもそもスクレイピングで取ったような文章なんて壊れてても誤差みたいなもんでしょうが、、)

このようなデコードエラー文字が存在する行ごと

元記事を表示

paizaラーニング「二次元配列の行ごとの和 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__row_sum
#### 私の解答
“`Python3
n, k = map(int, input().split())
a = [[int(i) for i in input().split()] for _ in range(n)]

for i in range(n):
ans = sum(a[i])
print(ans)
“`
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [[int(i) for i in input().split()] for _ in range(n)]

for i in range(n):
s = 0
for j in range(k):
s += a[i][j]
print(s)
“`

元記事を表示

paizaラーニング「二次元配列の最大の要素 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__search_max
#### 私の解答
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]
max = 0
for i in range(n):
for j in range(k):
if int(a[i][j]) > max:
max = int(a[i][j])
print(max)
“`
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [[int(i) for i in input().split()] for _ in range(n)]

ans = 0
for i in range(n):
for j in range(k):
if a[i][j] > ans:

元記事を表示

さくらレンタルサーバDBへ接続する方法

# やりたいこと
筆者はさくらレンタルサーバのスタンダードプランを利用しているのですが、
以前、ローカル環境にて遊びでPythonのGUIアプリを作っている際
「既存のデータベース(さくらレンタルサーバ)からデータを取得したい…!」
という場面があり、いざドメインを指定して接続してみたところ、**うんともすんとも言わず。**
~~(いや、何かエラーメッセージが出たような気もしますが忘れました。)~~
調べてみると、セキュリティの観点からさくらのWebサーバ以外からのアクセスはできない仕様らしい。

# 解決方法
既に同じ悩みを抱えている方々がコミュニティに質問を投げており、回答者の方々が口を揃えて言うのが
「WebサーバにAPIを設置して、API経由でデータベースにクエリを流せばいいじゃん」
とのこと。

# 実装方法
今回はとにかく手っ取り早く作る為、
APIがGETでパラメータを受け取り、それを元にAPI内部でクエリを作成する、という作りにしました。
ただそれだとあまりにもセキュリティ面がガバガバなので、
申し訳程度にパラメータのエスケープ処理と、さくらレンタルサーバの機能を利用し

元記事を表示

paizaラーニング「二次元配列での要素の検索 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__search
#### 私の解答
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]

for i in range(n):
for j in range(k):
if int(a[i][j]) == 1:
print(i+1, j+1)
“`
私は数値として扱っていますが、解答例は文字として扱っています。
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]

for i in range(n):
for j in range(k):
if a[i][j] == “1”:
print(i + 1, j

元記事を表示

BigQueryからPostgreSQLにAvroファイル経由でテーブルをコピーする

以下の手順でGoogle BigQueryからPostgreSQLにテーブルをコピーします。

– BigQueryからテーブルのスキーマとデータをAvro形式でexportする
– 本記事に記載のPythonコードにAvroファイルを渡して、PostgreSQLへのimport用SQL文を出力させる
– そのSQL文をPostgreSQLで動かしてimportする

その後、BigQueryとPostgreSQLで同じSELECT文を実行して、同じ結果が返ることをざっくり確認します。

※ 場合により、テーブルの完全なコピーにならないこともありますので、ご了承ください。
  ご利用は自己責任でお願いします。

# BigQueryからテーブルのスキーマとデータをAvro形式でexportする

BigQueryの「エクスポート」メニューから「GCSにエクスポート」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327312/dfd0e9bd-3825-be81

元記事を表示

【python】勉強メモ 速習Flask⑥

## はじめに
今回は、ログイン機能を実装します。

以下の記事の続きとなります。
[【python】勉強メモ 速習Flask①](https://qiita.com/qiitataro/items/d9b4b44255ae5082838a)
[【python】勉強メモ 速習Flask②](https://qiita.com/qiitataro/items/682faa9749d596cb3496)
[【python】勉強メモ 速習Flask③](https://qiita.com/qiitataro/items/5f12300c4b238d2b6170)
[【python】勉強メモ 速習Flask④](https://qiita.com/qiitataro/items/ae5eca426fbf7d1bea83)
[【python】勉強メモ 速習Flask⑤](https://qiita.com/qiitataro/items/8d7027f97e20a6e07cbc)

## 前回までの環境
#### ディレクトリ構造
“`
pydir/
┣myproject/ ->仮想環境

元記事を表示

paizaラーニング「二次元配列の出力 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_input_step4

前にも同じ問題があったので、私の解答は省略しました。

解答例だけ異なったので、記録に残すことにしました。
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]

for i in range(n):
for j in range(k):
if j == k – 1:
print(a[i][j])
else:
print(a[i][j], end=” “)
“`

元記事を表示

paizaラーニング「指定された範囲・行数の数字の出力 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__print_range
#### 私の解答
“`Python3
n, k = map(int,input().split())
for _ in range(k):
for i in range(1, n+1):
if i == n:
print(i)
else:
print(i, end=” “)
“`
前の問題の解答例に倣ったので、同じでした。
#### 解答例
“`Python3
n, k = map(int, input().split())
for _ in range(k):
for i in range(1, n + 1):
if i == n:
print(i)
else:
print(i, end=” “)
“`

元記事を表示

paizaラーニング「指定された行数の数字の出力 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__print_column
#### 私の解答
“`Python3
n = int(input())
for i in range(n):
print(“1 2 3 4 5″)
“`
二重ループメニューの問題集なので、私の解答は、手抜きでした^^;
#### 解答例
“`Python3
n = int(input())
for _ in range(n):
for i in range(1, 6):
if i == 5:
print(i)
else:
print(i, end=” “)
“`

元記事を表示

paizaラーニング「指定された数字までの出力 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__print_column_new
#### 私の解答
“`Python3
n = int(input())
for i in range(1,n):
print(i, end=” “)
print(n)
“`
#### 解答例
“`Python3
n = int(input())
for i in range(1, n + 1):
if i != n:
print(i, end=” “)
else:
print(i)
“`

元記事を表示

Raspberry Pi 4 を使ったROS入門 第3回 Hello world

# はじめに
この記事は研究室の学生の教育用に作成してゆきます.
現在はROS2がメジャーとなってきておりますが,まずは自習が出来るよう文献が豊富なROS1でROSの扱いに慣れてみます.
ROSは既に多くの文献があり,それだけでも自習可能ですが解説されているバージョンや環境が違い,初心者には躓きやすい内容だと思ったため,改めてまとめてみます.

前回はこちら
[Raspberry Pi 4 を使ったROS入門 第2回 ROSの概要とチュートリアル turtlesm](https://qiita.com/H-Ando-robo/items/e55ca60c74bd3009fb4d)
次回はこちら
[公開までお待ちください]()

# 動作環境
Raspberry Piを使用します.(用意できるならUbuntu入りのPCが◎)
ROSはUbuntu上で動くソフトなのですが,設定の違いによってトラブルが起きやすいので,クリーンインストールしてから始めることをお勧めします.
ROSのバージョンはUbuntuのバージョンとリンクしてます.

本記事で使用する機器とバージョン
| 使用機器 | U

元記事を表示

Python3で始めるWebスクレイピング入門 ~第1回 環境構築編(Mac)~

### 前書き

年末ですね。仕事もほぼ納まったことですし、何か書きましょう。
ということで重い腰を上げて書いていきます。

+ 第1回:Python実行環境構築
+ 第2回:Webページ上のデータのスクレイピング⇨CSVファイルへの出力
+ 第3回:階層化されたページのスクレイピング

の3部構成になる””予定””です。

### 準備

ターミナルを起動しましょう。

Homebrewがインストールされていない場合は、以下のサイトからコマンドをコピー&ペーストしてインストールを行なってください。
https://brew.sh/index_ja
“`
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

### やるぞ

Python3の実行環境を構築します。今回はpyenvを使用します。インストールしましょう。
“`
$ brew install pyenv
“`

pyenvでインストールできるPythonのバージョンを

元記事を表示

ITP1_7_B How many ways?の自分的まとめ(Python)

ITP1_7_B How many ways?の問題の解説を復習としてまとめようと思い書いていきます。

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

https://onlinejudge.u-aizu.ac.jp/problems/ITP1_7_B

# ①考え方
1~nまでの数の中から重複のないように3つ選び、その総和がxになったケースを数えるプログラムを書くことでACになります。
ではどのようにしたらよいでしょうか?
ここで真っ先に思いついて欲しいのが
#### **全探索 !!**
これを使うことで解くことができます。
あと考えやすいっていうのもありますね。

ではここから全探索を使って考えていきましょう!
整数i, j, kを用意します。
どのように探索するかと言いますと
1 <= i <= n, i+1 <= j <= n, j+1 <= k <= n の範囲を探索します。 その中でi+j+k = xになるケースを数えることで解くことが出来ました。 jとkはなんで1からじゃないの?って話なんですが、重複なしで選びたいので、 i < j

元記事を表示

OTHERカテゴリの最新記事