Python関連のことを調べてみた2021年11月03日

Python関連のことを調べてみた2021年11月03日

M1 MacのHomebrewでIntel版のPythonを手軽に切り替えて使う方法

M1 Macを始めたけれど、意外とx86_64でないと動かないライブラリやアプリがあって困る場合のメモ。この投稿を書く時点で、M1 Macに対応していないライブラリが結構あり、不便だったので手軽に環境を切り替えて実行できるようにした。

ここでは以下のように、コマンドで環境(M1/Intel)を切り替える設定にする。

– `brew_m` … M1 Mac の Homebrew (arch -arm64e)
– `brew_x` … Intel Mac の Homebrew (arch -x86_64)

同じように、よく使うコマンドでは、末尾にxをつけるとIntel Mac用のコマンドが実行できるようにする。

– `python3` `pip3` … M1のPython3とpip3
– `python3x` `pip3x` … Intel MacのPython3とpip3

時々しか使わないコマンドは、以下のようにして実行する。

“`
arch -x86_64 (コマンド)
“`

なお、現在実行しているシェルのアーキテクチャを確認するには以下のコマ

元記事を表示

Streamlitで音声ファイルを自動再生する方法

本記事では、HTML不要でWebアプリが作れるPythonのWebフレームワーク **Streamlit**にて音声ファイルを自動再生する方法について説明します。結論から言うと、HTMLを用いて自動音声再生を実現しています。

# はじめに
Streamlitを用いてアプリ上で音声ファイルを再生したい場合は、Streamlit標準の音声再生ウィジェット(st.audio)を使用します。このウィジェットを使うとアプリ上に音声コントローラーが表示され、コントローラー上の再生ボタンを押下することで指定した音声をアプリ上で再生することができます。

このウィジェットの問題としては、再生ボタンを押下しないと音声が再生できないことです。そのため、音声読み上げアプリのようなものを作りたいときにいちいちウィジェットの再生ボタンを押下する必要が出てきてしまいます。

今回は、この問題の解決方法について説明します。

![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692165/2555f01c-adb9-059f

元記事を表示

プログラミング言語を暗記するのは効率が悪い

プログラミング言語を暗記するのは非常に効率が悪い

初めて機械学習のプログラミングをやった時
いろいろな言語を暗記して勉強していたけど
とても効率が悪かった

プログラミング初心者の人は
右も左もわからないから
暗記してしまう人もいると思います。

暗記するのではなく
メモ帳にまとめるだけで
暗記するという無駄な時間がなくなり

勉強効率がすごく上がるとおもいます。

元記事を表示

【Python】moodleに自動ログイン

# 概要
今回は、Seleniumというライブラリを用いて大学生が普段よく使っている、学習支援システム「moodle」の自動ログインをやっていきます。
Pythonで簡単にブラウザを自動操作できる面白さを体感できればと思います!
※この記事は流出厳禁です!!!

# 事前準備
実際にコードを書く前に、必要なツールをインストールしていきましょう!

## Anacondaのインストール
みなさんAnacondaのインストールは済んでいるでしょうか?
まだできていない方は、以下のリンクからAnacondaをインストールしましょう!

https://qiita.com/geeksalon_python/private/a4b450fea94619afe020

## フォルダの作成
デスクトップに、「geek_python」という名前のフォルダを作成しましょう。
今回使うファイルは、すべてここに入れていきましょう!

## Chrome Driverをインストール
**1. 使用しているChromeブラウザの確認**
![image.png](https://qiita-image-sto

元記事を表示

対話型ラインBotを作るには?[初投稿]

#目次
* 最初に
* 目標
* LINE Notifyでは無理?
* LINE messagingAPIを使おう!
* herokuを使ってみる
* 最後に

#1.最初に
自分のポートフォリオとして記事を残そうと思い、投稿を始めました。
学生ですので参考になる記事には至らないかと思います。
Qiitaの書式のやり方におすすめなどアドバイスあれば教えていただきたいです。

#2.目標
今回はLINEの食堂の混雑状況提供botを作ることになりました。
チーム開発なのでセンサ、サーバ周りはおいといて、、

#3. LINE Notifyでは無理?

LINE Notifyを触ったことがなかったのでどういうものか調べ、pythonで簡易的なコードを書いてみました。

“`:python
import requests
import datetime
import pytz

#取得したトークン・API
TOKEN=’???’
api_url=’https://notify-api.line.me/api/notify’

#時刻の処理
time=datetime.datetime.no

元記事を表示

seleniumでインスタを動かせなくなった

いろんなサイトを参考にインスタ自動いいねツールを作成していましたが、最近エラーが出るようになったので調べてみました

“`python
driver.find_element_by_class_name(‘coreSpriteRightPaginationArrow’).click()
“`

インスタの投稿を次のページに進めるための→を押すコードのところです。下のように変更したら問題なく動きました

“`python
driver.find_element_by_class_name(‘l8mY4 ‘).click()
“`

元記事を表示

djangoの条件分岐処理についてまとめる

今回のお題

今回のお題は条件分岐です。

djangoテンプレートの条件分岐処理はpythonのそれとは勝手が違う部分がいくつかあるのでそこに関してまとめます。

繰り返し処理でも似たような試みをしているのでよろしければどうぞ。

https://qiita.com/keishi04hrikzira/items/93ac3727306bbc97b6c9

目次

– and, orについて
– yesnoフィルター
– firstof

and, orについて

djangoテンプレートのandとorは`andを先に処理する`というルールが決まっており、かつ()で無理矢理順番を変えることはできません。

なので、orを先に処理して欲しければif文をネストさせることになります。

“`django
{% if x % 2 == 0 or y == 10 and z != 0 %}

if x % 2 == 0 or (y == 10 and z != 0):

if (x % 2 == 0 or y == 10) and z != 0:
<

元記事を表示

djangoテンプレートの繰り返し処理についてまとめる

今回のお題

今回は、djangoテンプレートの繰り返し処理についてまとめます。

繰り返し処理といえばfor文ですが、djagnoテンプレートにはpythonのfor文にはない独自の機能がいくつか追加されています。

これらを使うことで複雑なロジックが簡潔に記述できるようになるので、自分のメモも兼ねてまとめます。

目次

– forloop
– for ~ empty
– 回数指定の繰り返し
– for ~ ifchanged
– regroup/grouper
– cycle/resetcycle

forloop

forloopはループ変数とも呼ばれる特殊な変数で、繰り返し処理に関する様々な情報を保持しています。

| 1 | 2 |
|:-:|:-:|
| counter | ループ回数(1スタート) |
| counter0 | ループ回数(0スタート) |
| revcounter | 残りのループ回数(そのループを含む) |
| revcounter0 | 残りのループ回数(そのループを除く) |
| first | 最初のループか否か(真偽

元記事を表示

特徴量としての時系列カラムを活用するには

今回はKaggle公式チュートリアル4つ目の[Time Series as Features](https://www.kaggle.com/ryanholbrook/time-series-as-features)を扱います。
(合計6つあるので、折り返し)

前回はフーリエ級数などを用いてcos, sin関数で表し、周期性のあるデータへのアプローチをしてきました。
個人的にも前回までの内容が手に馴染んでないので、Kaggleのデータセットでもちょこちょこ練習しようかなと思います。

今回は特徴量としての時系列データを扱っていく方法です。

例えば移動平均で見れば年々単調増加しているとか、fourierを使ってみると周期性が見つかった、という以外にも
「不定期であるが山がある」ようなデータももちろんあります。

こういう時には移動平均や規則性のある関数を使うことはなかなか難しいので、自分で特徴量を作ったりする必要があります。
今回はそれをみていきます。

先に書いておきますがコーディングの部分に関してはやや複雑であり、1から実装するというのは少し厳しいよね〜というコードですが、順に

元記事を表示

就活生・転職志望者のための模擬面接100本ノック(Streamlit)

# はじめに
筆者は先月まで通信会社で働いていましたが、無事に転職活動を成功させ、12月からネット広告会社のデータアナリスト・サイエンティストとして働くことになりました。今回は転職活動を通じて感じていた、**「模擬面接サービスがあったらいいのに」**という思いをアプリにしてみました。百聞は一見にしかずですので、初めに模擬面接アプリのURLとデモ動画を貼っておきます。

#### 模擬面接100本ノック

https://mensetsu-100knocks.herokuapp.com/

**(PC閲覧推奨、スマホからだと音声が出ません)**

元記事を表示

pytnonでMoodleの出席を自動化させてみた

#はじめに
今更ではありますが、一年前に書いたコードを紹介したいと思います。
経緯は察してください…

#環境
ソフトウェア
  anaconda3 64-bit
  Visual Studio Code
実行環境
  Chrome

#ソースコード
anaconda prompt

~~~
conda install selenium
~~~

python

~~~python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import chromedriver_binary
import time
# ブラウザを開く(Chrome)
driver = webdriver.Chrome()
#TOP画面を開く
driver.get(“Moodelのリンク”)
time.sleep(3)
# ログインボタンをクリック
login_btn = driver.find_element_by_xpath(‘//*[@id=”region-main”]/div/div[2]/d

元記事を表示

Tencent Cloud Face Recognition API で 顔マスク処理を書いてみた

[前回の記事](https://qiita.com/mynet-eng/items/a43f66e7596a5a92157b)に続き、顔解析結果を活用した処理を書いてみます。要点は以下。

– TCCLI のかわりに [Tencent Cloud Python SDK](https://github.com/TencentCloud/tencentcloud-sdk-python)を使って実装
– URL指定ではなく、実データを指定しAPIリクエスト
– APIレスポンスを元に顔のマスキング処理を実現する

## python環境準備

“`shell
$ python3 -m venv venv
$ source venv/bin/activate

(venv) $ pip install –upgrade pip
(venv) $ pip install tencentcloud-sdk-python-intl-en
“`

まずは、前回処理と同じ動きをする実装を書いてみます。

“`python
from tencentcloud.common import crede

元記事を表示

ゲリラ豪雨が発生する日の太陽光発電量を予測する(2回目)

先日、ゲリラ豪雨が発生する日の太陽光発電電力量を予測するの第一回目の記事を書きました。

https://qiita.com/kccs_api1/items/69e617ef9b62b5dd6721

一回目の記事では、ゲリラ豪雨が発生した日の特定と、発生時刻に太陽光発電量が落ち込むことが特定できました。今回は、その第二回目、「直前にゲリラ豪雨を検知して、太陽光発電量予測を修正することができるのか!?」を検証してみたいと思います。

ここでは、降水の予測として、「過去気象予報データ」と「速報版降⽔短時間予報データ」の履歴を使いたいと思います。また、わかりやすいように、前回の記事でもご紹介した雨量の実績値「速報版解析雨量データ」も使いたいと思います。
速報版降水短時間予報とは、作成頻度が10分間隔に⾼頻度化された降⽔短時間予報となります。

|カテゴリ|データ名|備考|
| :—: | :—: | :—: |
|予報|過去気象予報|予報①|
|予報|速報版降⽔短時間予報|予報②|
|実績|速報版解析雨量|参照データ|

###過去気象予報データ(予報値①)の加工
・あらかじめ

元記事を表示

【YOLOv5】自作データを使って顔検出を行う

超解像コンペの側、物体検出も勉強してみようということで、有名なYOLOモデルの最新版を動かしてみて、自作データの作成、学習までの方法を紹介します。

# 環境
Mac OS Monterey ver12
python: 3.8.12
PyTorch: 1.9.0

# 学習済みモデルの準備
普段ならJupyterやColabでモデルを構築して学習させてとやるところですが、YOLOに関してはGithub上からリポジトリを引っ張ってきて学習させます。

“`shell:ターミナル
# 作業フォルダ作成
mkdir YOLOv5
cd YOLOv5

# リポジトリをコピー,移動
git clone https://github.com/ultralytics/yolov5
cd yolov5
“`
以降このリポジトリ内のフォルダやファイルを編集していきます。

# 自作データの作成
物体検出タスクでの自作データセットを作るには
1. 画像データ
2. 画像データに対するアノテーションデータ

の2つが必要になります。
アノテーションデータとは、画像のどこに物体があるかを示すデータのこと

元記事を表示

小話〜djangoのdateフィルターについて

今回のお題

今回は、djangoテンプレートのdateフィルターについて取り上げます。

例によって自分用のメモですね。

目次

– フィルターとは
– dateフィルターとは
– フォーマットの規定値について

フィルターとは

まずはフィルターそのものについての説明を念の為。

フィルターとは、djangoテンプレートの{{}}で囲まれた値を加工するためのものです。

以下のように値とフィルター名を`|`で区切って使います。

“`django

{{ user.nickname|fuga }}
“`

dateフィルターとは

dateフィルターは年月日の表示形式を加工するためのものです。

以下のように`|date:”フォーマット形式”`という形で記述します。

“`django
{{ user.birthday|date:”Y年n月j日” }}
“`

これで`~年~月~日`という形式で表示されるようになりました。

(`n月j日`なので一桁の数字は0詰めになりません。0詰めがよければ`m月d日`表記にしましょう。

元記事を表示

MySQLで使う基本的なコマンドまとめ

卒業研究のためにMysqlを使い始めたので、思い出せなくなった時のためにメモ。
実行環境:

* MacOs BigSur 11.6
* Python 3.9.7
* mysql Ver 8.0.27 for macos11.6 on x86_64 (Homebrew)

##Mysqlモニタの起動##
“`
mysql -u UserName -pPasswd
“`
-u: ユーザーオプション
-p: パスワードオプション
パスワードオプションの後は、空白スペースを入れずにパスワードを打ち込む。打ち込まなくても-pで入力を終了すると次の行にパスワード入力のための文字が表示される。

###Mysqlモニタの終了###
“`
exit(or quit)
“`
Byeと表示されて終了

###データベースの作成###
“`
CREATE DATABASE databaseName;
“`
SQL文のコマンドは、大文字小文字の区別をしないのでこれでもできる。
「;」は絶対につける。付けないと命令が実行されない。

“`
create database databaseNa

元記事を表示

名前にハイフンが含まれるファイルをインポートする方法

Pythonでファイル名に“`-“`(ハイフン)が含まれるファイルをモジュールとして「***import***」を使って読み込もうとしたらエラーが発生し、正常にインポートできなかったので解決した方法をまとめておく。

#importの使い方
import文は、次のように使用したいモジュールを指定する。

“`python
import <モジュール名>
“`
#問題
このimportを使用してファイル名に“`-“`(ハイフン)が含まれるファイルをモジュールとしてインポートしようとすると以下のようになる。

“`python
// importの部分
import test-file

// エラー
import test-file
^
SyntaxError: invalid syntax
“`
このように、SyntaxErrorが発生してしまい正常にインポートすることができない。

#解決策

***import_module()***を使用してモジュールをインポートすることで解決した。これを使用する場合は、***importlib***をインポ

元記事を表示

Pythonで機械学習するのに勉強したことまとめ

#概要
何を隠そう食べごろうは,機械学習を扱う研究室に所属するにもかかわらず,”Pythonに初めて触れたのが学部3年” && “記憶力がべらぼうに悪い”という最悪の条件が整った人材である.
一度調べたこともすぐに忘れてしまうので,手だけでも動かす+後々見返しやすくするためにこの記事を書いていく.

#本編

##リスト・配列操作
基礎で困りがち.

###初期化

“`python:List
#単純なリストの宣言.何もインポートせずに使える.異なる型の要素を持つこともできる
list = [1,2]

#多次元配列も宣言可能
list_2D = [[‘a’,’b’], [‘c’,’d’]]
“`

“`python:array
import array

#arrayモジュールをインポートして作る.第一引数で型コードを宣言し,第二引数の配列の要素の型はそれに合わせる必要がある.
array_int = array.array(‘i’, [0,1,2])
“`

“`python:ndarray
import numpy as np

#numpyモジュールインポー

元記事を表示

日本の地震データを加工してわかりやすくしてみた

日本の地震データ

今回は気象省から出ている地震のデータを整形していく。
https://www.data.jma.go.jp/svd/eqev/data/bulletin/shindo.html

フォーマットはこれで、これをみながら整形を進めていく

https://www.data.jma.go.jp/svd/eqev/data/bulletin/data/shindo/format_j.pdf
![スクリーンショット 2021-11-02 12.35.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1227323/d9fdb647-3e19-5441-e274-ffc5d5404847.png)

“`php
# データ読み込み
import pandas as pd
df=pd.read_csv(‘dat/i2019.dat’, sep=’;’, encoding=’shift-jis’)

# データフレーム出力
df

A2019010104042854 018

元記事を表示

Python 例文集

# Python で使える例文集

自分用の備忘録として。

## API への問い合わせ

### API に問い合わせ、結果の JSON を dict 型として読み込む場合

返ってくる値は`レスポンスオブジェクト`。格納される主な属性は以下の通り。

– `status_code`: レスポンスのステータス(200など)。str 型
– `headers`: レスポンスヘッダ。dic 型
– `text`: レスポンス文字列本体。

“`py
import requests
import json

# API クエリをそのまま渡す場合
def get_malApi_response(arg):
url = ‘https://example.com/api/’
param = arg # arg = get/detail
res = requests.get(urlrl + param)
data = json.loads(res.text) # text 属性のデータを dict 型に変換

return data

# API ク

元記事を表示

OTHERカテゴリの最新記事