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

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

Python C# データ連携

こんにちは、本日はPythonとC#間でデータのやり取りをする方法を紹介します。
使用する技術は「共有メモリ」です。

## 動作の仕組み

1. Pythonで名前付き共有メモリの作成
2. C#でPythonで作成した共有メモリを開く
3. 相互にデータの読み書きを実施

## 環境

Windows10 (名前付き共有メモリを利用するにはWindowsOSを利用する必要があります。)

pythonでの名前付き共有メモリはWindowsでしか利用できません。。。
「tagname」の引数が共有メモリの名前です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586845/8a76893d-5bc1-5172-7fda-8908e7e27605.png)

## ソースコード

今回のプログラムはPythonで共有メモリの1WORD目の値をインクリメントしていき、
C#側でその値を読み取っていきます。

### Python 共有メモリの作成&書き込み

“`python:

元記事を表示

Pythonでできること

①WEBアプリの開発
②ゲーム開発
③ドローン
④Iotアプリ開発(ラズベリパイ)
⑤作業の自動化ができる
⑥スクレイピング
⑦データ解析
⑧機械学習
⑨ディープランニング

元記事を表示

情報収集自動化

RSSを使って情報収集自動化
————–

情報のソースとなるRSSフィードを選び出します。
各自いつも見ているNewsサイトなどのRSSフィードを取得してください。

今回は[GoogleNews](https://news.google.com/news/rss/headlines/section/topic/TECHNOLOGY?hl=en-US&gl=US&ceid=US:en)です。

### Pythonライブラリの追加

以下のライブラリをインストールしてください。
※pipが無ければapt-getしてください。

$ pip install feedparser
$ pip install extractcontent3
$ pip install google-api-python-client
$ pip install google-auth-httplib2
$ pip install google-auth-o

元記事を表示

花粉の飛散量を予測してみた

#1.初めに
1.私はアイデミーで初めてpythonを学習した素人です。pythonを学習して、花粉の飛散量を予測したいと思い、予測してみました。

#2.花粉の飛散量を予測の概要
・使用データ
東京都アレルギー情報navi.過去の飛散花粉数データ
https://www.fukushihoken.metro.tokyo.lg.jp/allergy/pollen/archive/archive.html

・分析方法
時系列解析(SARIMA)

実行環境
Python 3.7.12
Google Colaboratory

・分析の流れ
1.データの取得・修正
2.データの読み込み・整理
3.SARIMAモデルに当てはめ
4.予測データの代入
5.時系列データの可視化
6.可視化したデータから花粉の飛散量を予測

#3.データ分析
##3-1データの取得・修正
まずhttps://www.fukushihoken.metro.tokyo.lg.jp/allergy/pollen/archive/archive.html
から各年のデータをCSVで取得する。
今回は平成23年~令和2

元記事を表示

【Python】公開鍵で暗号化した文字列を秘密鍵で復号化する方法

# はじめに

**システム外で暗号化したパスワードをシステム内で復号化して利用したい** というニッチな要望に応える記事です。
英語サイト含めまともな情報が少なく、最終的にあまり見ないであろう方法で動作しました。
人に説明できるほど暗号化技術に詳しくないため、備忘録がてら以下で手順のみ書いていきます。

# 手順

## 1. キーペアを作成する

“`shell
# 秘密鍵生成
openssl genrsa 2048 > private-key.pem

# 秘密鍵をPKCS#8に変換
openssl pkcs8 -topk8 -in private-key.pem -inform PEM -out private-key_pkcs8.pem -outform PEM -noiter -nocrypt

# 公開鍵を生成
openssl rsa -in private-key_pkcs8.pem -pubout -out public-key.pem
“`

※ ファイル内の改行コードを取り除いておく。
※ この時点で `public-key.pem` は不要になる。

##

元記事を表示

AtCoder Beginner Contest 224 参戦記

# AtCoder Beginner Contest 224 参戦記

## [ABC224A – Tires](https://atcoder.jp/contests/abc224/tasks/abc224_a)

3分半で突破、WA1. どう書くのがエレガントでバグが少なかっただろうか.

“`python
S = input()

a = S.rfind(‘er’)
b = S.rfind(‘ist’)

if a > b:
print(‘er’)
else:
print(‘ist’)
“`

## [ABC224B – Mongeness](https://atcoder.jp/contests/abc224/tasks/abc224_b)

5分で突破. 書くだけ.

“`python
H, W = map(int, input().split())
A = [list(map(int, input().split())) for _ in range(H)]

for i1 in range(H):
for i2 in range(i1 + 1

元記事を表示

事前学習済みモデルBERTを使用して、TOEIC Part5の解答導出過程で着目した単語をattentionで可視化し、分析してみた

#1.背景
IT業界、特にAI領域への転職を見据え、2021年5月より、Aidemyのデータ分析講座の受講を開始しました。
主な学習内容は下記の通りです。
※下記は必須の学習内容ですが、その他にも多数のコースが受講可能です。

<必須コース>

– Pythonの基礎知識
– NumPy(数値計算)
– Pandas(データベース)
– Matplotlib(データの可視化)
– 機械学習の手法
– 教師あり学習(回帰・分類)
– 教師なし学習
– 時系列データの解析
– データクレンジング・データハンドリング
– ディーブラーニングの基礎知識
– 自然言語処理の基礎知識
– Twitterの感情分析と株価予測
– タイタニックのKaggkeコンペ
– テーマを決めてブログ作成

<Aidemy Premium Plan>

– [https://aidemy.net/grit/premium/](https://aidemy.net/grit/premium/)

#2.読んでほしい対象
– 機械学習(特に自然言語処理)の基礎が理解でき

元記事を表示

等分散性(分散の同一性)の検定を流れで見ていく

検定において、「別々の母集団の母分散が等しいか?」ということが意外と必要だったりします
(ちなみに、自分は日常で分散の同一性が必要な場面にはまだ出会ってないですが。。)

統計検定にも時たま出てくるので、アウトプットの意味合いもこめて順に解説していきます。

# 前置き(時間ない方は読み飛ばしても問題ありません)
例えば、平均の差の検定(分散分析)をする時の前提として「母集団の分散が等しい」と仮定していることがあります。
これは、すでに等分散性を確認して確かめているからそういうことが言える、という背景がありますので、知らないうちに使われていることが多いのかなと感じています(もちろん問題文とかに書いてないですw)。

# 実際の流れ

##それぞれの仮説
まず、正規分布に従う母集団が二つ。(それぞれN($μ_1$, $σ_1$)、N($μ_2$, $σ_2$)とします)

ここで帰無仮説はもちろん「二つの分散が等しい」ことです
$$H_0: σ_1 = σ_2$$
対立仮説は差がある(どちらかが大きい)と考えます

このときに使うのはF分布となります(すぐに詳細は解説)

## それぞれ

元記事を表示

AtCoder ABC224 挑戦!(Python)

ABC224、コンテスト6回目の挑戦です。
阪神が点が取れず引き分けだったのと同じく、私もC問題で最後WAを取り除けずに、落としました。。。
でも茶色(優勝)は諦めません。挑戦しつづけるのみ。諦めたらそこで試合終了。

“`ruby:ABC224A
S=input()

#erかistかを判定
if S[-2:]==’er’:
print(‘er’)
else:
print(‘ist’)
“`
必ずどっちかに判定されるので、istの方は節約した。

“`ruby:ABC224B
H, W= map(int, input().split())
# print(H, W)

#H行W列のマス目
matrix=[]
for i in range(H):
index_i=[]
index_i=list(map(int, input().split()))
matrix.append(index_i)

# print(matrix)

#条件の判定
#ありうるi1, i2の組み合わせ
list_i1_i2=[]
for i1 in range(1,

元記事を表示

Ubuntu(20.04.3 LTS)でmatplotlibを使えるようにする

#記事の概要
Ubuntu環境でmatplotlibを使用するためpipでインストールしたところ,matplotlibはインストールされているはずなのに,ModuleNotFoundErrorというエラーが出て使えませんでした。
これを解決するには,pip3を使ってインストールすると上手くいったよという話です。

#目次
1. OSのバージョン
2. pythonのバージョン
3. pipのインストール
4. matplotlibのインストール

###1. OSのバージョン
“`
NAME=”Ubuntu”
VERSION=”20.04.3 LTS (Focal Fossa)”
“`

###2. pythonのバージョン
“`
$ python3 –version
Python 3.10.0
“`

###3. pipのインストール
“`
$ sudo apt install python3-pip
“`

###4. matplotlibのインストール
“`
$ pip install matplotlib
“`
でインストール。しかし,プログラムを実行すると,

元記事を表示

python スクレイピング。プログラミングが出来ると、こんなことが出来る

# 導入

pythonのライブラリの
### playwright
https://qiita.com/KWS_0901/items/e5f7d88f14d479746698
を使えば、初心者でもこんな楽しいことが出来る!

### ※普通のスクレイピングだと、html要素を取得するのが難しいので、最初が難しいです。
が、
### playwright
こちらを使うと、勝手にhtmlを取得してくれるので、
スクレイピングの難易度が下がります

“`
% python iori_io.py
“`
### ↓結果
こちらのサイトからランダムで画像を保存してくる(新しめの画像を引っ張ってきます)
https://bi-girl.net/iocos69?sort=new
![スクリーンショット 2021-10-23 22.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492674/6ee54719-904b-f46c-e91e-4e84c0900c3d.png)

#### 実行するたびに、ロ

元記事を表示

OpenCVのinpaintは32-bit floatを入れても動く

OpenCVのinpaintは便利ですがuint8の画像でしか動かないと思っていました。
しかしエラーメッセージをよく読むと……

“`
inpainted = cv2.inpaint(src, mask, 3, cv2.INPAINT_TELEA)
cv2.error: OpenCV(4.0.1) C:\ci\opencv-suite_1573470242804\work\modules\photo\src\inpaint.cpp:756: error: (-210:Unsupported format or combination of formats) 8-bit, 16-bit unsigned or 32-bit float 1-channel and 8-bit 3-channel input/output images are supported in function ‘icvInpaint’
“`

実は16-bit unsigned shortや32-bit floatを入れても動くらしいです。ただし1チャンネル限定。

issueによると2017年には

元記事を表示

【Python】大学のレポート期限をGoogle Calendarに自動追加する。

#きっかけ
現在大学3年生で、私の通う大学では、新型コロナウイルスの影響でほとんどがオンライン講義になりました。そして、レポート等の課題は大学HPで不定期に掲載される科目が多く、こまめに確認しなければ気づけないという問題がありました。私自身、掲載されたことに気づかず、友人伝いでレポートに気づくこともありました。
そこで私が友人に頼らなくても、早く課題に気づいて取り掛かり、Google Calendarで管理することで提出忘れがないようにするために作ったのが、このアプリです。
ホームページでmanabaを採用されている大学の学生はURL等を少し変えるだけで使えるようになるかもしれません。是非試してみてください。

#実装した機能
1. 大学のwebページから科目名とレポート期日をスクレイピング
1. Google Calendarから現在登録されている予定を取得
1. 1の中から未登録のレポート期日をGoogle Calendarに登録
1. 新規登録があった時にはLineで通知

#事前準備
コード以外にインストール・登録が必要なものと参考にした記事を先に記載します。

* chro

元記事を表示

pythonで天気情報のスクレイピング

#天気予報のスクレイピング
気象情報のデータが必要になったので、「tenki.jp」さんから1時間ごとの温度や湿度やらのデータを取ってきた。

##注意
・スクレイピングを行うためには、法律やWebサイト利用規約を守る。
 公式に提供されているAPIがあるなら、それを利用する方がよい。
・スクレイピングスキル向上を目的でコードを書いたが、
 不正に利用しない、攻撃実験をしないを守っています。
・一部(取ってくるデータの地域など)は〇など記載して伏せます。

##環境
pythonで仮想環境内、beautifulsoup4をインストール(pip、anaconda両方で試しました)。
両方とも仮想環境を作成して行うのがオススメです。
“`
pip install beautifulsoup4
“`
“`
pip install requests
“`
または
“`
conda install beautifulsoup4
“`
“`
conda install requests
“`

##htmlのクラス
chromeで調べたら下記のようになっていた

時間:hour

元記事を表示

文系卒が数学オリンピックをPythonで解く(2021年予選編その1)

#これまでのあらすじ
– 文系卒の私。でも数学になじみたい。
– ふむふむ、数学オリンピックというのがあるらしい。やってみますか。
– 紙とペンを使ってマジメに解く文系卒。えらい、えらいぞ!
– 5分後にふと衝撃走る。「これPythonでやったほうが早くない?」
– そんな、いつか 誰かに 本気で怒られそうな気づきを 実行したのであった──。

#ルール
– 数学オリンピックの問題をPythonで解く。
– ライブラリは可能な限り使わない。例外的にitertoolsは使う。
– 図形の問題は挑戦しないかも。許してね。
– 式変形すれば解けるようなものも面白味がないので対象外。

#引用元
問題はこちらから引用しております。

[第31回(2021年)JMO予選の問題 – 数学オリンピック](https://www.imojp.org/archive/mo2021/jmo2021/problems/jmo31yq.html)

https://www.imojp.org/archive/mo2021/jmo2021/problems/jmo31yq.html

#Q1
##問題
>互い

元記事を表示

プログラミング学習 Day5(リスト、タプル、ディクショナリー)

# リスト
– 複数の要素を箱の中に入れれる。
– .append()で最後に要素を追加できる
– .pop()で最後の要素を取り出せる(利用しないなら削除と同じ)できる

入力

“`Python
fruit = [“apple”, “orange”, “grape”]
print(fruit)
fruit.append(“banana”) # これで”banana”が追加される
print(fruit)
fruit.pop() # これで”banana”が消える
print(fruit)
print(fruit[1])
“`

出力

“`
[‘apple’, ‘orange’, ‘grape’]
[‘apple’, ‘orange’, ‘grape’, ‘banana’]
[‘apple’, ‘orange’, ‘grape’]
orange
“`

# タプル
– リストと似ているが内容を変更できない
– あまり使わない
– [] ではなくて ()で囲う
入力

“`Python
fruit = (“apple”, “orange”, “grape”)
print(f

元記事を表示

マイナビプログラミングコンテスト2021(ABC201) A~C問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

マイナビプログラミングコンテスト2021 A~C問題の解説記事です。
(AtCoder Beginner Contest 201)

灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

https://qiita.com/sano192/items/54accd04df62242b70f0

##株式会社マイナビ様について
株式会社マイナビ様は就職に関するサービスを始め、幅広い領域のサービスを提供している企業です。
深層学習やAI分野に力を入れており、アルゴリズムや数学の知識がある方を積極的に採用しているとのことです。

詳しく知りたい方は採用情報のページをご覧ください。

https://www.mynavi.jp/recruit/

##A – Tiny Arithmetic Sequence

https://atcoder.jp/contests/abc201/tasks/abc201_a

A1,A2,A3の並び順としてありうるのは6通りです。
問題文記載の通り、数列を(小,中,大)として「中」-「小」=「大」-「中」が成り立っている

元記事を表示

kivyMDチュートリアル其の参什玖 Components – Snackbar篇

ハロー、Qiita。いかがお過ごしでしょうか。

はい、ということで今週も相変わらず開いております。少し肌寒いというかめちゃ寒
でしたが、体調は崩してはいませんでしょうか。この業界は体資本、というかビジネス
マンであれば全てと言っても過言ではないくらい体を使います。体調は万全にしておき
たいですね。

今週のニュースはというと、特にとりとめもなかったかと思います。私の調査不足という
ことはなしにしてください。。

で、今週のKivyMDのテーマは、Snackbarとなります。下の方で伝えたいメッセージを
ピローンと出すやつですね。ではさっそく元気でやっていきます。えいえい、えいー。

## Snackbar

毎回のことですが、マテリアルデザインのリンクは飛ばします。KivyMDとかでは仕様を
守って実装されているのでそれほど気にする必要はありませんが、結構見落としがちな
ことなどを書かれています。例えばボタンはテキストと同じにしないとか、このボタン
のスタイルは使っちゃだめよとか。気になる方は一度ご覧いただけたらと。

マニュアルの方でもこのように概要が書かれています。

> Sna

元記事を表示

[ Python ] クラス変数とインスタンス変数

`class`をpythonで宣言する際に、クラス内変数を宣言することがあります。
特にクラス内で値を追加したり削除したりするリストを使いたい場面がよくあります。
クラス内変数の宣言方法や「クラス内変数」という呼び方が実は曖昧な呼び方であったことを知ったので備忘録としてまとめていきます。

[以下は、公式ドキュメントから引用しています。](https://docs.python.org/ja/3/tutorial/classes.html)

– 一般的に、**インスタンス変数**はそれぞれのインスタンスについて固有のデータのためのもので、**クラス変数**はそのクラスのすべてのインスタンスによって共有される属性やメソッドのためのものです:

“`python
class Dog:

kind = ‘canine’ # class variable shared by all instances

def __init__(self, name):
self.name = name # instance varia

元記事を表示

VS Codeでkerasの自動補完が効かなくなった時

メモ

VS codeでTF.Kerasモジュールを使用したスクリプトを書いていたときに補完が効かないことに気づいた。

なぜだか良くわからないが解決したので共有。
なお、Python関係の拡張は`ms-python.python`の最新版のみインストールしている。

# 解決策

“`python
# from tensorflow import keras の代わりに…
import tensorflow.keras as keras #とする
“`

## 改善前

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801085/a53e77e1-80a2-1764-1160-bf2aceb6675c.png)

## 改善後

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801085/878c213e-fba2-a15d-96bf-cfb2c749416d.png)

元記事を表示

OTHERカテゴリの最新記事