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

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

ラズパイをpython2からpython3に変更する方法

## (1)pythonのバージョンを確認
*現在のバージョンはpython2系であることを確認
“`
python -V
–python2.7.0
“`
## (2)シンボリックリンク確認
“`
cd /usr/bin
“`
“`
ls -l | grep python
–rwxrwxrwx 1 root root 10 Oct 4 2022 python -> python2
“`
## (3)シンボリックリンク削除
“`
cd /usr/bin
“`
“`
sudo unlink python
“`
## (4)シンボリックリンク作成
“`
cd /usr/bin
“`
“`
sudo ln -s pytohn3 python
“`
## (5)再度シンボリックリンク確認
“`
cd /usr/bin
“`
“`
ls -l | grep python
–rwxrwxrwx 1 root root 10 Oct 4 2022 python -> python3
“`
## (6)再度pythonのバージョンを確認

元記事を表示

Pythonでもeval/exec is evil

# はじめに

eval関数およびexec関数はPythonの組み込み関数で、詳細はさておき文字列をコードとして実行することができます。同様の関数はインタプリタ方式の言語に広く用意されており、私が知っている限りではJavaScriptやRubyに搭載されています。

しかし、この関数はほとんどの場合で利用すべきではありません。一般的に**eval is evil**といわれています。Pythonでも例外ではないはずです。

# 利用例その1

ユーザーから入力された文字列を加工してprint関数で表示する関数を考えます。

“`python
import sys
input = sys.stdin.readline().rstrip()

exec(f”””
def print_input():
print(f’★{input}★’)
“””)

print_input()
“`

“`
> python print_input.py
入力しました!
★入力しました!★
“`

evalを使用したこのコードは、**とても危険**です。たとえば、入力が以下のような文字列だ

元記事を表示

データ分析で使うコード (データ扱い編)

個人的に使うものを厳選して残しておきます。

### データのインポート

Pandasのread_csvは、CSVファイルを読み込むための関数です。

“`Python
import pandas as pd
df = pd.read_csv(‘home/hoge.csv’)
“`
“`Python
import pandas as pd
# デフォルトの区切り文字はコンマ。
# スペース区切りの場合は sep 引数を使用する。
df = pd.read_csv(‘home/hoge.csv’, sep=’ ‘)

# 自動的に最上行のデータをヘッダーにしたくない場合
df = pd.read_csv(‘home/hoge.csv’, header=None)

# ヘッダーに使用する列名を指定するとき
df = pd.read_csv(‘home/hoge.csv’, names=[‘A’, ‘B’, ‘C’])

# 読み込む列を指定したいとき
df = pd.read_csv(‘home/hoge.csv’, usecols=[0, 1, 2])
“`
### データの

元記事を表示

[環境構築]簡単にDockerでJupyter Labを立ち上げる

#### まず、Dockerfileを作成します
“`Dockerfile
# Dockerfile
FROM jupyter/base-notebook

USER root

RUN pip install -y pandas numpy

RUN pip install jupyterlab

USER jovyan
“`
– pipを実行するために、USER rootを書きます
– Jupyter Labを起動するために、USER jovyanを書きます(jovyanはJupyter Labのデフォルトユーザー)

#### Jupyter Labのイメージを作成します (Dockerfileのディレクトリに遷移する必要)

“`bash
docker build -t my-jupyter-lab .
“`
– my-jupyter-labじゃなくても好きに命名していいです
– . は Dockerfileのあるディレクトリです

#### Jupyter Labを起動します

“`bash
docker run -p 8889:8888 -v “$PWD”:/

元記事を表示

Pythonでの音声信号処理 (6) ダミーデータを鳴らす

## やりたいこと
ダミーデータを鳴らすこと

## やってみた
音といえば、A(ラ)の音を使うことが多いようなので、A = 440 Hz で試してみる。

“`p6.py
# -*- coding: utf-8 -*-
import sys
sys.dont_write_bytecode = True

from pydub import AudioSegment
from pydub.playback import play
import Dummy as dmy

def main():

smpl = 44100 # サンプリングレートは44.1kHz
sec = 2 # 2秒分

wavA = dmy.makeWave(440, smpl, sec, 32, 0, 1)

aud = AudioSegment(
wavA.astype(“int8”).tobytes(),
sample_width=1,
frame_rate=smpl,

元記事を表示

Windows10でYOLOXを動かすときのエラーと対策

Windows10でYOLOXを動かしてみたら色々とエラーがでて苦戦したので、エラーと対策をまとめてみました。

## subprocess.CalledProcessError: Command ‘[‘where’, ‘cl’]’ returned non-zero exit status 1.

### 内容

Visual Studioの環境変数が通っておらず、clコマンドが実行できないというエラー。

### 対策

VisualStudioの環境変数を設定します。パスの内容は自身の環境に合わせて適宜変更してください。

1.PATHに以下の2つのパスを追加
“`
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE
“`

2.LIBという環境変数を作成し以下の3つパスを追加

元記事を表示

[python]Seleniumでの待機処理

# はじめに
pythonでSeleniumを遊び半分で触っていて発生したエラー第一弾です。
#### 前回までのあらすじ
PythonでChromeDriverを操作してyoutubeの特定の画面へ遷移し、条件に合ったyoutube動画の情報をスクレイピングするコードを紹介しました。

https://qiita.com/Oyama-Kohei/items/3b4153ea5f699f28042c
#### 今回発生したエラー
下記のコード実行中に発生
“`python
# ChromeDriverでurlを起動
driver = webdriver.Chrome(CHROME_DRIVER_PATH)
driver.get(url)

xpath = ‘//*[@id=”tabsContent”]/tp-yt-paper-tab[2]’
driver.find_element_by_xpath(xpath).click()
“`
エラー内容としては以下
“`
selenium.common.exceptions.NoSuchElementException: Message:

元記事を表示

コロナが来なかった場合の国内映画興行収入予測

# 0. 目次
1. はじめに
1. データ内容
1. 分析の狙いと推測
1. 実行環境
1. データ分析の流れ
1. データ分析の結果
1. 終わりに
1. 自己紹介

# 1. はじめに
昨今、様々な動画配信サービスの登場により、契約してしまえば映画館にもレンタルビデオ店にも行かず、自宅でドラマや映画が見放題という数年前までは考えられないような世界になった。
私自身も「NetFilx」「Disney+」「Prime Video」など複数のサービスを利用し、楽しんでいる。
これらにサービスを利用してる人なら1度は私と同じ経験をしたことがあるかもしれない。
###### **最近まで上映してたはずなのに、もう配信が始まってる!!**
###### **すぐ配信するなら映画館に行かずに配信待てばよかった...**
大迫力のスクリーン・高品質のサウンド・様々な映画予告を見ながら上映を待つワクワク感は、やはり映画館に足を運ばなければ体験出来ないが、自宅で気軽に映画が見られる時代となってからは映画館に行く機会は減り、最後に映画館に行ったのはいつか思い出せないほどになってしまった。

前置きが長

元記事を表示

AtCoder Beginner Contest(ABC) 282 – Pythonでのリアルタイム参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 282
– 開催日時
– 2022/12/17(土) 21:00 – 22:40
– 実施区分
– リアルタイム参加

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|6:00|19ms|
|B問題|AC|26:14|24ms|
|C問題|AC(1)|68:15|197ms|
|D問題|未提出|-|-|

# 4. 解説

## 4-1. A – Generalized ABC

### 4-1-1. 問題文
整数 K が与えられます

元記事を表示

windows環境でbcil_dcm_convert.pyを使ってみた

# 目的
bcil_dcm_convert.pyを使って情報を取り出したCSVが見たいので、githubのソースを使いたい。
どうやって使うのかしらこれ?
https://github.com/RIKEN-BCIL/BCILDCMCONVERT

# 前提
・Windows10
・Python3.8は入っている前提
・dcm2niixはインストールしていない。(けど情報の入ったCSVだけ取得ができるとの噂)

# 手順
## まずはソースをダウンロード
緑色の「Code」を押すと「Download ZIP」と書いてある所が出てくるのでそこをポチっとする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111190/5b6c190b-a16f-f874-caa4-f400992a1122.png)

## 解凍する

Pythonのパスが通る場所ならどこでも良いから解凍する。Cドラのがめんどくないよね多分・・・
私の場合はとりあえずC:\Users\XXXXXX\Documents

元記事を表示

AtCoder 競プロ典型 90問 001 – Yokan Party(★4) Python解答例(二分探索 / 貪欲法)

[Supership](https://supership.jp/)の名畑です。先日、知り合いの一世代上の女性が「[スラムダンクの映画](https://slamdunk-movie.jp/)が流行ってるんですよね。原作読んだことないけど行ってみようかな」という話をしていて、本当に人気なんだなと実感しました。

## はじめに

競プロ典型 90問の過去問解答例シリーズです。
今回は1問目のYokan Partyです。難易度は★4なので緑diffの難易度でしょうか。

:::note info
**競プロ典型 90問**についての説明や解答例の目次は[こちらの記事](https://qiita.com/nabata/items/2872fc1485f24ee2865a)をご覧ください
:::

## 001 – Yokan Party(★4)

### 公式リンク

– [問題](https://atcoder.jp/contests/typical90/tasks/typical90_a)
– [解説](https://github.com/E869120/kyopro_educat

元記事を表示

Pythonのopenpyxlを使ってExcelシートの罫線を取得する

英語記事も色々調べ倒して、どこにも無かったのでどっかの誰かの役に立てば…(と言う名の備忘録)と思い残しておくことにした。

動作環境:
 Python = 3.10.8
 OS = windows11
 IDE = VScode 1.74.3

### コード
“`python
from openpyxl import load_workbook

filename = ‘testExcel.xlsx’

wb = load_workbook(filename)

ws = wb.active

print(‘left: ‘, ws[‘C39’].border.left.border_style)
print(‘right: ‘, ws[‘C39’].border.right.border_style)
print(‘top: ‘, ws[‘C39’].border.top.border_style)
print(‘bottom: ‘, ws[‘C39’].border.bottom.border_style)

“`

結果
“`
left: medium
right: m

元記事を表示

all()とand、any()とorの違い

北海道をこよなく愛するピーターです。
意外にも
「python all and 違い」
「python any or 違い」
で検索してもヒットしなかったので記事に残します。

# はじめに
pythonには条件文を書くときに便利な組み込み関数が存在します。
それは`all()`と`any()`です。
どう便利なのかというと、`and`と`or`を繰り返し記述しなくて済みます。

# 記事を書いた背景
これらの便利な関数の使い方についてネットで検索すると、`all()`と`and`は同一です!という記事ばかりでした。
しかし、両者の挙動は別物です。このことに悩まされたため記事を書きます。

# all()とany()を使ってみる(違いがない場合)
実際に`and`と`or`を使ったコードと`all()`と`any()`を使ったコードを比較してみます。
“`all.py
a = 1
b = 2
c = 3

#andを使った場合
if a == 1 and b == 2 and c == 3:
print(‘and int’)
#組み込み関数all()を使った場合
if all

元記事を表示

Djangoを用いた「TodoList」Webアプリ開発の手順

# 概要
Python3とDjango3を利用してToDoリストを作成します。
Djangoの汎用クラスビューを利用して、下記の基本的なCRUDの機能を実装します。

ToDoの一覧表示機能
ToDoの詳細表示機能
ToDoの作成機能
ToDoの編集機能
ToDoの削除機能

# 開発環境
開発環境は下記を利用しています。
Python 3.10.6
Django 4.1.5 (バージョン3.0と比べると機能が加わったくらいなので基本的な仕様は変わらない。)

# GitHub
サンプルのプログラムのリポジトリは下記のURLになります。
https://github.com/miyazaki-tsubasa/TodoListproject/tree/main/todoproject

# Djangoで作るToDoリスト
# 仮想環境の構築
下記のコマンドでpythonの仮想環境を構築。
Pythonのバージョン確認
“`
$ python3
“`
バージョンが表示されたらok

### プロジェクトを作成
todoprojectという名前のファイルを作成する。
“`

元記事を表示

matplotlibとpandasを使ってグラフを作成してみた

大学の研究の際にpythonでグラフを作成する機会があったため,matplotlibとpandasを用いてグラフを作成してみた.
# matplotlibとは
matplotlibは,プログラミング言語Pythonのためのグラフ描画ライブラリである.オブジェクト指向のAPIを提供しており,様々な種類のグラフを描画する能力を持つ.

# グラフの作成に使用したメソッド
|メソッド |説明 |
|—|—|
|figure|figureのインスタンスが複数ある時など,どのfigureに割り当てるかを指定する.|
|subplot |引数によって生成するAxes(サブプロット)の数を変更できる。 |
|twinx|元のAxesオブジェクトを複製する。ただし新たなAxesには横軸がなく縦軸が逆側にある。 |
|set_xlabel |x軸のラベルを設定する |
|set_ylabel |y軸のラベルを設定する |
|get_legend_handles_labels |二つ目のグラフを描写する |
|set_xlim |x軸の上限値を設定する |
|set_ylim |y軸の上限値を設定

元記事を表示

アルゴリズム実技検定(PAST) 第11回 I問題 Python解答例(幅優先探索)

[Supership](https://supership.jp/)の名畑です。少し前の話になりますが[このマンガがすごい!2023](https://konomanga.jp/special/145771-2)を見て、今年もオトコ編は集英社が多いなという素直な印象を持ちました。ランクインしている[あかね噺](https://www.youtube.com/watch?v=B8AE5A41CA0)は古典芸能である落語をジャンプの文法に見事に落とし込んでいて面白くて好き。

## はじめに

[アルゴリズム実技検定(PAST)](https://past.atcoder.jp/)の過去問シリーズです。
第11回のI問題になります。

A問題からここまで解ければ合計で64点なので中級となります。
前にも引用させていただいた[AtCoder社長の高橋様のつぶやき(2019年時点ですが)](https://twitter.com/chokudai/status/1196371845563346944)によるとこれで緑相当でしょうか?

AtCoderで緑の私は分相応に第11回はいったんここまで

元記事を表示

Matplotlib_チートシート_Python データ分析学習備忘録

## チートシート
自己学習用です。
正規の内容はドキュメントを参照してください。

## 文法

### グラフ描画 基本文法

“`python
# matplotlib.pyplotをpltとしてimport
import matplotlib.pyplot as plt
import numpy as np

# np.piは円周率
x = np.linspace(0, 2*np.pi)
y = np.sin(x)

# データx, yをグラフにプロットして表示
plt.plot(x, y)
“`

* 表示範囲:`plt.xlim([始まりの値, 終わりの値])` `plot.ylim([始まりの値, 終わりの値])`
* グラフタイトル:`plt.title(“タイトル名”)`
* 軸ラベル:`plt.xlabel(“ラベル名”)` `plt.ylabel(“ラベル名”)`
* グリッド表示:`plt.grid(True)`
* グラフ軸のメモリを設定:`plt.xticks([目盛りを挿入する位置], [表示する目盛りの文字列])`
* グラフサイズ:`plt.f

元記事を表示

【PySimpleGUI】設定ファイルをJSONで簡単に取り扱う

PySimpleGUIで設定ファイルを取り扱いたい時に、`configparser`モジュールを利用したやり方が多く紹介されています。
しかし、PySimpleGUIのみで設定ファイルを取り扱うことができるので紹介します。
日本語の記事が見当たらなかったので投稿しました。

# バージョン
4.60.4

# 公式リファレンス
基本ここ見ればいいです。
[Call reference \- PySimpleGUI](https://www.pysimplegui.org/en/latest/call%20reference/)

# メソッドの説明
– `user_settings_filename(filename = None, path = None)`
設定ファイルのパスとファイル名を指定します。
最初に指定をしなければ、デフォルト値として
path : C:/Users/<ユーザー名>/AppData/Local/PySimpleGUI/settings
filename: アプリケーション名(Pythonファイル名) + ‘.json’
が指定されます。(Window

元記事を表示

音声認識AIのWhisperを利用して、英語動画をテキスト化したい

# 概要
Qiita初投稿なので至らぬ点があればご容赦ください。
私はセキュリティエンジニアとして勤務していますが、勉強するには英語の教材に向き合うことが多々あります。youtubeであれば翻訳字幕機能を使ったり、文献であればDeepLを使えばいいのですが、そうではない動画では英語字幕すらない場面に遭遇します。
なんとか英語の動画をテキスト化し、DeepLで翻訳できればと思いPythonで組んでみました。

# お断り
普段プログラムを書くことがないため、変な書き方をしているかもしれません。

# 構築環境
OS:Windows11
Python:3.9 Anaconda3使用
NVIDIA CUDA ツールキット:11.7
NVIDIA cuDNN:8.5
ffmpeg:0.2.0
pytorch:1.13.1+cu117

# Whisperの準備
OpenAIが開発している汎用的な音声認識モデルになります。音声からの文字起こしと翻訳機能を兼ねています。ただし、英語から日本語には対応していないため英語のテキスト化に使用していきます。
CPUのみで稼働させることもできますが、GPUを

元記事を表示

アルゴリズム実技検定(PAST) 第11回 H問題 Python解答例(ナップサック問題 / 動的計画法)

[Supership](https://supership.jp/)の名畑です。
[うる星やつらの2クール目のOP](https://www.youtube.com/watch?v=stb-BpPpJ7U)も好きです。テンちゃんと竜之介が加わると一気にうる星やつら感が増します。

## はじめに

[アルゴリズム実技検定(PAST)](https://past.atcoder.jp/)の過去問シリーズです。
第11回H問題の解答例です。

難易度としてはABC(AtCoder Beginner Contest)のC〜Dぐらいという肌感ですが、[ナップサック問題](https://ja.wikipedia.org/wiki/%E3%83%8A%E3%83%83%E3%83%97%E3%82%B5%E3%83%83%E3%82%AF%E5%95%8F%E9%A1%8C) / [動的計画法](https://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E8%A8%88%E7%94%BB%E6%B3%95)を知っていればほぼノータイムで解けそうではあります

元記事を表示

OTHERカテゴリの最新記事