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

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

Twintの使い方

#はじめに
はじめまして、[@Herb](https://qiita.com/Herb)と申します。
普段はCOBOL,JCLを使用し仕事をしています。
COBOLは扱っていてあまり面白いと思えなかったのでPythonを勉強?しています。
その中で疑問に思ったことや解決に時間がかかったのもなどをメモとしてQiitaに投稿していこうと思います。

#Twintとは?
TwitterのAPIを使わずに、ツイートを取得することができるライブラリです。

#Twintの使い方

Twintをインストールします。

“`python:Twint_install.py
$ pip install twint
“`

・特定ユーザーのツイートを取得する

“`python:test.py
import twint
import nest_asyncio

nest_asyncio.apply()

# Configure
c = twint.Config()
#特定のユーザー名
c.Username = “Qiita”
#実行日から数えて過去何日分のツイートを取得するか
c.Limit = 1

元記事を表示

GCP Cloud Functions を GAS トリガーを用いて定期的に実行する

先日、会社で GCP のオンラインセミナーを受講しました。それから折をみては GCP のサーバレス環境である Cloud Functions を触っています。

GCP にデプロイした Cloud Function を定期的かつ自動的に実行させたいことがしばしばあります。いくつか方法がありますが、今回は Google App Script のトリガーを用いてみたいと思います。

##Cloud Functions の作成・デプロイ

### ローカル環境で Cloud Functions を開発

Cloud Functions は Node.js, Java, Go, Python など、いくつかの言語に対応するランタイムがありますが、ここでは私が使い慣れてる Python で HTTP イベントで動く処理を作ってみます。

まずはローカル環境にいくつかライブラリをインストールします。

“`shell
# pip で functions-framework をインストール
$ pip install functions-framework

# BeautifulSoupを使うの

元記事を表示

CVXPYによる凸最適化問題の定式化 ~ DCPのルールの理解 ~

# はじめに
negocia株式会社では、「うれしい広告」の実現をミッションに、機械学習、数理最適化の技術を活かしたオンライン広告向けのSaaSを開発しています。
今回,Python製凸最適化モデリングツールCVXPYでモデリングする際に求められるDCPルールについて整理してみました.
# CVXPYとは?
[CVXPY](https://www.cvxpy.org/)は,Pythonに向けた凸最適化問題のモデリング言語です.CVXPYを使うことで,二次計画問題などの一定の条件を満たす凸計画問題であれば,ソルバーが要求する制限的な標準形式ではなく,数学に沿った自然な方法で問題を表現することができます.たとえば,似たような名前のパッケージである[CVXOPT](https://cvxopt.org/)で二次計画問題を解く際には,二次計画問題の標準形$min \ (1/2) x^\top P x + q^\top x\ s.t\ Gx\le h, Ax=b$に直して,パラメータ$P, q, G, h, A, b$をソルバーの引数として渡す必要があります.ところが,CVXPYでは,DCP(D

元記事を表示

【Python3】Python3エンジニア認定データ分析試験受験記

昨日、一般社団法人Pythonエンジニア育成推進協会が提供しているPython3エンジニア認定データ分析試験を受験した。

データ分析試験

結果は、1000点満点中900点(合格最低点:700点)で合格した。

#0.筆者のスペック
Python経験は1年半ほど
2020年7月 Python3エンジニア認定基礎試験合格
機械学習はほぼ初

#1.勉強に使用した教材と費用
A.『Pythonによるあたらしいデータ分析の教科書』(以後公式教材と呼ぶ)

B.模試(DIVE INTO CODE)

https://diver.diveintocode.jp/dive_into_exam/2

C.難しい模試(プライムストラテジー)

TOP

費用
受験費:11000円(学割が効くと5500円)
公式教材:Amazonで2728円※
※以下サイトの通りに受験宣言をするとキャン

元記事を表示

RaspberryPiでSPI駆動の1.8″ TFT液晶(ST7735s)を使って、画像を表示する。

# RaspberryPiで1.8″ TFT液晶を使う
この記事では、1.8″ TFT液晶をRaspberryPi上のPython3で駆動します。
Arduinoでの駆動例は多数あり、ライブラリも豊富ですが、Python3での駆動例は少なかったため記載します。

:::note warn
使用する液晶によって、表示上の赤と青が入れ替わる(RGB→BGR)となる場合があります。
私の使用した液晶ではこの症状が発生したため、画像の赤と青を反転させることで対応しています。
解決策をご存じの方がいましたら、コメントしていただけると助かります。
:::

この記事のスクリプトは、以下のページを参考にしました。
####配線

https://learn.adafruit.com/1-8-tft-display/python-wiring-and-setup

####スクリプト

https://learn.adafruit.com/1-8-tft-display/python-usage

# ライブラリについて
他のサイト等で紹介されている、ST7735s・ST7735のライブラリを用い

元記事を表示

ABC202 C – Made Up を解いてみた

https://atcoder.jp/contests/abc202/tasks/abc202_c

![abc202_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/8cda5e73-67f4-31b6-0aeb-b2361c284d77.png)

いつもの通り i, j をそれぞれ for でネストして全探索したら
TLE で落ちてしまう。とりあえずサンプルを眺める

![abc202_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/40d5e55e-781f-0b8d-8e05-12692b37f38c.png)

for 文で B[C[i]-1] について i で回してみよう。
その時に**B[C[i]-1] と同じ値が 配列 A の中に何個あるのか**数えれば良さそう。
ってことは事前に辞書で A について整理しておけば解決すると思った。

“`MadeUp.py
N = i

元記事を表示

WebAPIでpythonコードを実行できるシステムを作った話

# なぜ作ったのか
時々バッチ処理やスレイピングなど長時間動作させたいプログラムを書くことがあります
もちろんローカルで実行すれば良いのですが
重たい処理であったり長い時間実行する必要がある場合、PCに負荷がかかるのを避けるためです

# 作ったもの
WebAPIのBodyにpythonのコードを書いてPOSTするとが実行されて結果が返されます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/911989/b574ec64-1c07-151b-2265-b8dd488a83a3.png)

# 技術スタック
– 言語
python

– フレームワーク
django

– デプロイ先
Heroku

# コード
Djangoで作っているので、url.pyとview.pyのみ載せます
Djangoに関する情報は探せばいっぱい出てくると思うのでそちらを参照ください

“` python:url.py
path(‘wakeup/’,views.wakeup ,name=’wakeup’),

元記事を表示

Pythonで日本語文の中の生物の学名を抜き出す

(追記)コメント欄で以下よりシンプルな書き方を教えていただきました。
# モチベーション
[生物の学名は斜体で書く](https://www.enago.jp/academy/scientific-names_animals-plants/)という決まりがあります。Wordに文章を打ち込んでいる時に、いちいち学名を手作業で斜体にするのが面倒なので、自動化したいです。そのための第一歩としてPythonで学名を抜き出してみます。
ちなみにPython 学名で検索するとニシキヘビ(Python)の情報が出てきます。

# 学名を抜き出す
日本語文の中に半角英字で学名が書かれていることを想定。例文はWikipediaの「[クラミドモナス](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%83%9F%E3%83%89%E3%83%A2%E3%83%8A%E3%82%B9)」より取りました。

“`Python:Python
text = “クラミドモナス(Chlamydomonas)は緑藻綱クラミドモナス目(もしくはオオヒゲ

元記事を表示

Python 入門2 (データー構造)

#はじめに

今回の記事では、Pythonの基礎的な文法について、Udemyの講座にて学習した内容を記載する。
主に下記の講座にて勉強致しました。(Udemyの講師から許可を頂いています)

[現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル](https://www.udemy.com/course/python-beginner/)
セクション4:「データー構造」

#目次

[1.リスト型](#1-リスト型)
[2.リストの操作](#2-リストの操作)
[3.リストのメソッド](#3-リストのメソッド)
[4.リストのコピー](#4-リストのコピー)
[5.リストの使い所](#5-リストの使い所)
[6.タプル型](#6-タプル型)
[7.タプルのアンパッキング](#7-タプルのアンパッキング)
[8.タプルの使い所](#8-タプルの使い所)
[9.辞書型](#9-辞書型)
[10.辞書型のメソッド](#10-辞書型のメソッド)
[11.辞書のコピー](#11-辞書のコピー)
[12.辞書の使い所](#12-辞書の使

元記事を表示

Lost connection to MySQL server during query

Flask-SQLAlchemyでMySQLを使っていてハマった事象について。

# 発生事象

Flaskアプリケーションを起動して長時間(8時間くらい?)経過後にブラウザでアクセスするとInternal Server Error。エラーログは下記の内容。

> sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, ‘Lost connection to MySQL server during query’)

Internal Server Error発生後、ブラウザで再読み込みするとエラーは解消される。
が、さらに長時間経過すると再び同様のエラーが発生。

# 環境

* Python 3.9.5
* MySQL 5.7.34
* Flask 2.0.0
* Flask-SQLAlchemy 2.4.4
* PyMySQL 1.0.2

# 原因と対策

どうやら長時間経過するとコネクションプールが死んでしまう模様。
これを解消するにはDBアクセスの前にpingを飛ばしてやる、すなわち `SE

元記事を表示

djangoのMiddleWareに頼らなく、自作でSessionのキーと値をブラウザに保存しましょう!

Djangoは独自のsession処理機能が実装されていますが、自分なりのsessionを作ることももちろんできます。
例えば:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1729963/56ab7073-4f8b-6e6f-f9e3-d70f644e6085.png)
このように、好きなNameを設定し、あるいはいくつのcookiesをまとめてブラウザに保存することで、ブラウザから二回目のrequestが来た時、必要なデータも簡単に手に入れることができます。

# Template
簡便のため、form tagを使ってLogin画面を想像してください。

# MiddleWare
“`python
class Cust_session(MiddlewareMixin):

def process_request(self, request):
request.my_session = {‘my_session_id’:”, ‘my_sessi

元記事を表示

Python学習日記 ~文字列型に関連するメソッドについて~

ということで、python学習開始2日目です。
学んだことは自分で文字に起こして忘れないよう、
知識定着できるよう適宜まとめていきたいと思います。

まず、pythonでは、

#オブジェクト.メソッド() 

として、関数を示すことがわかりました。いままでやってきたPHPの時とはちがうなあ!
JSと近いイメージだなと思いました。(素人感想すみません、、)

以下は本日学習した、文字列に関連する関数とユースケースです。

#文字列の複製
fruit_10 = ‘fruit’ * 10
print(fruit_10)
→fruitfruitfruitfruitfruitfruitfruitfruitfruitfruitfruitfruit

#文字列の連結
new_fruit = ‘apple’ + ‘banana’
print(new_fruit)
→applebanana

#特定のインデックスの文字のみ抽出
fruit = ‘fruit’
print(fruit[2])
→u
※f(0) r(1) u(2) i(3) t(4)

#count 指定の文字列が何個あるか

元記事を表示

【pandas】2つのテーブルを結合し、合計と平均を求める

#はじめに
Python初学者です。
GoogleColaboratoryにて日々勉強中です。
今回はpandasのメソッドの理解を深めるため、自身で例題を作り実装してみました。
内容に誤り等ございましたらコメントにてご教授いただけますと幸いです。

また、今回のコードは[こちら](https://colab.research.google.com/drive/1MKqkIUteQdTKT-Eoiihi3aFPaFUnk5Kt?usp=sharing)からお試しいただけます。

#例題
– 下記2つのデータフレームを作成・結合し、合計、平均値を追加する

| | 品名 | 原価 | 売価 | 利益 |
|:-:|:-:|:-:|:-:|:-:|
| 0 | りんご | 100 | 120 | 20 |
| 1 | みかん | 50 | 60 | 10 |
| 2 | かき | 80 | 100 | 20 |

| | 品名 | 原価 | 売価 | 利益 |
|:-:|:-:|:-:|:-:|:-:|
| 0 | もも | 90 | 120

元記事を表示

Chainer チュートリアル学習記録 Python篇

# チュートリアル学習の背景
– 現在、機械学習の勉強をしているが、本に書かれているコードについて解説を読めばなんとなくやっていることは分かるが、自分でそのコードを1から書けと言われても書けない状況を打開したいと思っていた
– pandasのSeriesとDataFrameの違いや要素へのアクセスなど、その都度調べる勉強方法がいいのか、一度、pandasやnumpyなどのチュートリアルをやってみたほうがいいのか考え中
– 「その都度」のメリット・デメリット
– メリット
– その都度調べるから必要な量だけを実践的に知ることができる
– デメリット
– 体系的に身につかない
– 「チュートリアル」のメリット・デメリット
– メリット
– 体系的に身につく
– 良い資料(本当に必要なだけの内容を計算している)を使えば、体系的な学習のデメリットである時間がかかることを後々回収できる可能性がある
– デメリット
– 悪い資料(使用頻度の低いものまで掲載している)を使うと、体系的学習に

元記事を表示

データ分析メモ

##はじめに
以下のUdemy講座の学習メモです。
[やさしい実用統計 Pythonによるデータ分析入門](https://www.udemy.com/share/103DSBAEASdltXRH0F/)

##統計の分野
大きく4つあります。企業で一般的に利用される統計は記述統計です。

– 記述統計(ほかの統計分野の基礎でもある)
データの情報収集

– 推測統計(統計の中心的な理論)
部分から全体を推定

– ベイズ統計
データに基づく確率的推移

– 多変量解析
多変量データのモデリング

##記述統計
データの情報収集。データを集約して情報を抽出する方法の総称。
主な方法は次の通り。

– データの分布を確認する
– 代表値を調べる
– 散布度を調べる
– 変量を標準化する

##データ分析の目的
データ分析は必ずおおもとの課題につながるものでなければならない。
データ分析の結果から施策が立案・実行されることが大切。施策が実行されて初めてデータ分析が成功したか否かがわかる。
##データ分析の種類
2種類に分類できます。

– 求解:求める結果が明確に定義されている
– 探索:

元記事を表示

OSMnxのインストールで苦労した話

#OSMnx インストール方法
私がいつも使っていた環境でインストールしようとしたものの、
見事にインストール失敗。3日以上かかってしまいました…。
頑張ったので書いておきます。

決め手はこちらのサイトなりました。感謝

##環境
windows10   64bit home
Python    3.9.5  64bit

fiona     1.8.20
GDAL     3.2.2
rtree     0.9.4  ←あえてこのバージョンにした。
geopandas  0.9.0
osmnx    1.1.1
以下が足りなかった…
shapely   1.7.1
six     1.16.0
pyproj    3.2.0
descartes  1.1.0

### OSmnxを使うときに必須になるパッケージが多数あります。
geopandas
rtree

### geopandasインストールに必要なパッケージ
numpy
pandas (version 0.15.2 o

元記事を表示

Django rest_framework にてカスタムのレスポンスステータス・ボディを返却する方法について

# 概要
Django rest_framework を利用して API を設計しています。
アプリケーションでは、別サーバーへ HTTP アクセスしています。
HTTP アクセスが失敗して、なにもハンドリングをしないと、自前の Django アプリケーションで 500 エラーが発生してしまいます。
500 エラーは「うっかり」ででるような類のサーバーエラーのニュアンスがあるように感じられたので、起きうることは予想できるけれど、どうしようもない例外ということで [502 エラー](https://developer.mozilla.org/ja/docs/Web/HTTP/Status/502) を返そうとしました。
Spring MVC のようなことができることを想定していたのですが、既定の機能では、レスポンスステータスを、502 で返す方法がなさそうなので、カスタムのレスポンスを返却する方法を調査しました。

# 環境
* Python: 3.9
* Django: 3.1.4
* Django Rest Framework: 3.12.2

# 実現方法
公式ページのやり方を模

元記事を表示

初心者向け Pythonプログラミング基礎 #1

#目的

プログラム言語の一つであるPythonの使い方の基礎を学ぶ.

また,特に指定がない場合下記のようにプログラムの実行結果を示す.

“`.py
>>>この部分は実行結果を表示
“`
#Python3
インタプリタ型のプログラミング言語のひとつ.
※Python3とPython2は互換性がない.
インデントが構文規則として使用されており,書きやすく読みやすいという特徴がある.
使われる分野が広く機械学習でも使用される.

プログラミング言語 : コンピュータ言語の内コンピュータプログラムを記述するための言語.
インタプリタ型 : プログラムを実行する手段の一つ.ソースコードを1行ずつ読みこみ実行命令として,動作する.

#Pythonのオブジェクト
Pythonのオブジェクトとは,Pythonで操作するデータとのことである.
複雑な構造にさせることもでき,行列などを簡単に表現できる.

詳しくは,難しいのでおいおい説明する.

#コメントの記述
各行の#以降はコメントとして認識され,プログラムとしては実行されない.
また,”または’を3つずつで前後を囲うことで複数行をコメン

元記事を表示

Pythonを使ってYoutubeから字幕を抽出する。

Youtubeを見ていると自動生成される字幕がでてくると思います。
今回はそれをテキスト化し抜き出してみます。

2021/09/06 さきほど動作確認したところ、エラーが出て動かなくなっていました。。
調べたところYouTube側のAPIの変更などが原因の用です。pytubeがissueを出していたのでバージョンを上げれば動作するかも。。
https://stackoverflow.com/questions/68680322/pytube-urllib-error-httperror-http-error-410-gone
これでうまくいくのかな?

#LanguageReactorつかえば?
GoogleChromeのLanguageReactorというプラグインを使うと同じようなことが搭載されています。
字幕の開始時間はとれるんですが今回は終了時刻が欲しかったので別途Pythonで実装しました。

#実装
“`Python
import os
from pytube import YouTube

#字幕出力
def outContext(url):
#動画のクラ

元記事を表示

210911_Pythonプログラミング教室

## 演習問題①の解答

“`
# 全ての果物の金額を変数に代入する
apple = 100
orange = 120

# 「税抜き価格は〇〇円になります」と出力する
non_taxed_price = apple * 2 + orange
print(‘税抜き価格は’ + str(non_taxed_price) + ‘円になります’)

# 「税込価格は〇〇円になります」と出力する
tax_included_price = int(non_taxed_price * 1.1)
print(‘税込み価格は’ + str(tax_included_price) + ‘円になります’)
“`

## 演習問題②の解答
“`
test_scores =[50, 65, 45, 75, 70]

# 解答1) 国語の点数(50点→80点)に書き換えてください
test_scores[0] = 80

# 解答2) 体育の点数(90点)を加えて出力してください
test_scores.append(90)
print(test_scores)

# 解答3) 「最低スコアは◯点、最高ス

元記事を表示

OTHERカテゴリの最新記事