- 1. 言語処理100本ノック解いてみた(4,5)毎朝やってますわ
- 2. 初心者から始めるプログラミング LeetCode:Valid Parentheses
- 3. Youtube Data APIを使ってカスタムURLを元にチャンネルIDを取得出来るか試してみた
- 4. Python で Amazon Rekognition を動かしてみた
- 5. Meraki MV Sense MQTT を使ってみた
- 6. Pythonファイルを超簡単にexeファイル化するGUIソフト
- 7. Raspberry Pi 4 で 温湿度気圧センサー(BME280)の測定結果を出力する
- 8. データフレームについて–08: 論理演算
- 9. データフレームについて–07: パイプ
- 10. 言語処理100本ノック解いてみた(0~3)
- 11. condaを叩いたら「AttributeError: module ‘colorama’ has no attribute ‘init’」が出るようになり、なんとか解決できた話
- 12. データフレームについて–06: 統計量の計算
- 13. ec2ssmが便利だと思う
- 14. データフレームについて–05: データフレームの変容
- 15. ABC256E問題をトポロジカルソートっぽく解いた話
- 16. データフレームについて–04: 行,列の削除
- 17. [Python]階層化されたJSONを再帰処理でパースする
- 18. データフレームについて--03: 行,列の取り出し
- 19. データフレームについて--02:欠損値の取り扱い
- 20. 【Mac M1環境】MS outlookから数百通の個別メールを、連続自動送信するコードの書き方。(丸2日作業を瞬殺した話)
言語処理100本ノック解いてみた(4,5)毎朝やってますわ
## 問題4
“`python
import re
string = “Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.”
re.sub(‘[-=+,#/\?:^.@*\”※~ㆍ!』‘|\(\)\[\]`\’…》\”\“\’·]’,””,string)
strarr = string.split(” “)
arr = [1, 5, 6, 7, 8, 9, 15, 16, 19]
dict_res = {}
for i in arr:
dict_res[i] = strarr[i-1][0]
for i in range(len(strarr)):
if i+1 not in arr:
dict_res[i+1] = strarr[i][:2]
print(dict_res)
“”” 実行結果:{‘Al’: 15,
‘Ar’: 18,
‘B’: 1,
‘Be’: 11,
‘
初心者から始めるプログラミング LeetCode:Valid Parentheses
## はじめに
就活が始まり、コードテストなるものを受けるようになった。プログラミング自体は1~2年ほど前から学んでいたため、なんとかなるだろうとたかを括っていたら意外と難しい。しかも、今自分が使っている言語(TypeScript)はどうやらコードテストには向いていないらしい・・・
ちょうど、大学院の研究でPythonを使い始めたのでこれを機にPythonでアルゴリズムを学ぼうと決意。
その中で、自分が引っかかった点や学びになった点を備忘録を兼ねて記載していきます。本日はLeetCodeからStackの理解におすすめと噂の20.Valid Parenthesesを解いていきます。
## 問題
{ , } , [ , ] , ( , )この6種類の文字が組み合わされて文字列sとして与えられます。
例えば、s='{]()’など
その時,Sが正しい括弧の並びになっているかを判定するというもの。
例えば、`s='()’`はtrue
`s='{}()[]’` はtrue
`s='{)[)’`はfalse空文字列もtrueになるのには要注意です。
## 解法
まず考えたことはペ
Youtube Data APIを使ってカスタムURLを元にチャンネルIDを取得出来るか試してみた
[Youtube Data API](https://developers.google.com/youtube/v3/getting-started)で特定のチャンネルからアップロードされた動画の情報を取得する場合、対象チャンネルのIDが必要になります。
自分のチャンネルであれば、Youtubeにログインして設定画面からチャンネルIDを確認することが可能ですが、
他人のチャンネルの場合は、対象のチャンネルのURLの末尾を確認するのが一般的だと思います
※YoutubeのチャンネルURLについては、[こちら](https://support.google.com/youtube/answer/6180214?hl=ja&ref_topic=9257109)をご参照くださいhttps://support.google.com/youtube/answer/6180214?hl=ja&ref_topic=9257109
ただし、人によっては「カスタムURL」を設定することで独自のURLを使用している方もいることが分かりました
※カスタムURLの詳細は、[こちら](https://su
Python で Amazon Rekognition を動かしてみた
# 背景
「家に不在時でも〇〇が家に来たら〇〇を行う」
こんな事ができたらなぁと考える事がありました。例えば
・ヤクルトレディが来たらオートロック解除
・宅配業者ならオートロック解除
・N〇Kならブラックリスト登録
でもどうやって判断するんだ?画像分析ってなんか難しそうやなぁと言うことで今回は、やりたい事の一端に活用できそうな **Amazon Rekognition** を動かしてみます。
また、今後応用できるように **Python** で動作できる様にします。# 流れ
①**Python** 実行
②**Amazon S3** にImageを格納
③**Amazon Rekognition** で要素を分析
こんな流れでいきます。
# 環境
Windows 10 Enterprise 上でWSL2を
Meraki MV Sense MQTT を使ってみた
# 背景
Meraki MVのAPIの中に”MQTT”と記載があった。
何のことか分からなかったので調べると、面白そうなので動かしてみた。# 環境
Windows 10 Enterprise 上でWSL2を動かしています。
Ubuntu、Pythonを利用しています。### Version
“`
$cat /etc/os-release
NAME=”Ubuntu”
VERSION=”20.04 LTS (Focal Fossa)”$python3 -V
Python 3.8.10>wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
“`
# 構成
今回動作確認をした構成図はこちら。
毎度わかりずらいのはすいません☺
Pythonファイルを超簡単にexeファイル化するGUIソフト
**auto-py-to-exe**というpyinstallerをGUI化したソフトが便利です。書くのが煩わしいspecのadd-data等をマウス操作で簡単に追加できちゃいます。
—
操作のデモがこちら
—
auto-py-to-exeのレポジトリはこちら
https://github.com/brentvollebregt/auto-py-to-exe
pyinstallerのspecの書き方はこちら
https://pyinstaller.org/en/stable/
Raspberry Pi 4 で 温湿度気圧センサー(BME280)の測定結果を出力する
RaspberryPi4に温湿度気圧センサーのBME280を接続、測定結果を出力した。
## はじめに
サンプルコードはSWITCH SCIENCEのサンプルプログラム(bme280_sample.py)を使う。
※[GitHubはこちら](https://github.com/SWITCHSCIENCE/samplecodes/blob/master/BME280/Python27/bme280_sample.py)**wgetで取得**
“`
$ wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
“`## 準備
**配線**
Raspberry Pi 4との配線は配線図の通りに実施。
具体的には、以下の通り。“`
SDI (BME280) -> GPIO2 P03 (Raspberry Pi SDA1)
SCK (BME280) -> GPIO3 P05 (Raspberry Pi SCL1)
GND,
データフレームについて–08: 論理演算
# 論理演算 `all` と `any` と 排他論理和
“`python
import pandas as pddf = pd.DataFrame({
‘x’: [1, 2, 3, 4, 5],
‘y’: [1, 0, 0, 0, 1],
‘z’: [0, 0, 0, 0, 1],
‘b’: [True, False, True, True, True]})
df
“`
データフレームについて–07: パイプ
# パイプ
関数型言語では,データ処理のときに関数を入れ子にすることで中間結果(変数)を明示しないというやり方が,ある意味普通である。
## 1. 入れ子式に関数を呼ぶ場合
“`python
import pandas as pd
df = pd.DataFrame({
‘a’: [1, 2, 3, 4, 5],
‘b’: [1.2, 3.4, 5.6, 7.8, 9.0]
})
dfdef func1(df):
return df.transform(‘sqrt’)def func2(df, power=2, constant=1):
return df.transform(lambda x: x**power + constant)
“`“`python
print(func2(func1(df)))
“`a b
0 2.0 2.2
1 3.0 4.4
2 4.0 6.6
3 5.0 8.8
4 6.0 10.0## 2. パ
言語処理100本ノック解いてみた(0~3)
# お腹すいた
今日からずっと書きます。フィードバックよろしく。
言語処理100本ノック : https://nlp100.github.io/ko/ch01.html
ど偉い俺様のギット:https://dongkeuny50.github.io/
初作成:2022/06/21
## 問1
“`python
print(“stressed”[::-1])
“`
“`python
desserts
“`
説明するまでもない。
## 問2
“`python
“”.join([“schooled”[i* 2 + 1]for i in range(4)])
“`
“`python
cold
“`
同じく。競プロやってたらすぐです。これも一文でできなかったら今すぐ競プロやれ。## 問3
“`python
“”.join([“shoe”[_] + “cold”[_] for _ in range(4) ])
“`
“`python
schooled
“`## 問4
“`python
print([len(_)for _ in “Now I need a drincondaを叩いたら「AttributeError: module ‘colorama’ has no attribute ‘init’」が出るようになり、なんとか解決できた話
# 0. 事の発端
それはPythonでのデータ分析を勉強中のことでした。
自然言語処理のお勉強で、形態素解析をするためにMeCabをjupyter noteboookで使いたい(ちなみにOSはWindows11)と思い、Anacondaにインストールする作業をしていました。
ところが、MeCabとMeCab-python3の両方をインストールしないといけないことが分かっておらず、コマンドプロンプトでMeCabのバージョンは出力できるのにいざpythonでimportするとエラーになったことで「あれれ~おかしいぞ~~??」とあれこれpathを変えてみたりAnacondaをupdateしてみたりしているうちに、コマンドプロンプトからもAnaconda Promptからも、condaコマンドを使おうとするととにかく「AttributeError: module ‘colorama’ has no attribute ‘init’」とエラーが出るようになってしまいました。ちなみに超蛇足ですが、この他「コマンドプロンプトからjupyter notebookが開けなくなった」「コマンドプロン
データフレームについて–06: 統計量の計算
# 統計量の計算
“`python
import numpy as np
import pandas as pddf = pd.DataFrame({
‘a’: [1, 2, 3, 4, 5],
‘b’: [1.2, 3.4, 5.6, 7.8, np.nan]
})
df
“`
<
ec2ssmが便利だと思う
## ec2ssmが便利だと思う
某所でやっつけでつくったec2のNameタグをタブ補完してssmログインするツールを引数にprofileを指定して汎用性をもたせました。
ssmの設定については、このあたりの記事を参照。https://zenn.dev/t_morooka/articles/eb98e6a5c9a493
ec2ssmはこちら。
https://github.com/yuhiwa/ec2ssmssm自体の説明は他にまかせます。
ec2ssmは“`ec2ssm Nameタグ“`でec2にログインできるaws cli(aws ssm)のラッパーです。### 使い方
#### 1. Nameタグをインスタンスに設定する
分かりやすい名前をインスタンスのNameタグに設定しましょう。#### 2. ~/.aws/credentialsに記載する
“`
# ~/.aws/credentials[default]
aws_access_key_id=…
aws_secret_access_key=…[myprofile]
aws_accesデータフレームについて–05: データフレームの変容
# データフレームの変容
“`python
import pandas as pd
df = pd.DataFrame({
‘a’: [1, 2, 3, 4, 5],
‘b’: [1.2, 3.4, 5.6, 7.8, 9.0]
})
df
“`
a ABC256E問題をトポロジカルソートっぽく解いた話
### E問題をトポロジカルソートっぽく解いた話
公式解説のYoutube放送中にコメントで「トポロジカルソートで解いた」と書いたら[snuke](https://atcoder.jp/users/snuke)さんに「どうやって解くんだろ」と言われたので「あれ?あまり一般的な解法ではないのかな」と思ってここで共有させていただきます。Qiitaに解法記事を載せるのは初めてなので、図や文章が読みづらかったらゴメンナサイ。
### 問題を見たときまず考えたこと
[ABC256E](https://atcoder.jp/contests/abc256/tasks/abc256_e)これ見た瞬間に、まず真っ先に頭に浮かんできたのは[ABC223D](https://atcoder.jp/contests/abc223/tasks/abc223_d)だったんですよね。こういう「AさんはBさんより先に」みたいな問題構造はA→Bの有向グラフだと捉えると上手くいくケースが多いです。実際に今回の問題の入力例2を元にすると、こんな感じの有向グラフが出来上がります。
![スクリーンショット 2022-06データフレームについて–04: 行,列の削除
# 行や列を削除する `.drop()`
“`
drop(labels=None, axis: ‘Axis’ = 0, index=None, columns=None,
level: ‘Level | None’ = None, inplace: ‘bool’ = False,
errors: ‘str’ = ‘raise’)
“`pandas 0.21.1 以降では `labels` と `axis` で指定していたものが `index`, `columns` で指定できるようになった。
新しいバージョンをインストールして,`index`, `columns` を使おう。
“`python
import pandas as pd
df = pd.DataFrame({
‘a’: [1, 2, 3, 4, 5],
‘b’: [1.2, 3.4, 5.6, 7.8, 9.0],
‘c’: [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]
})
df
“`
【Mac M1環境】MS outlookから数百通の個別メールを、連続自動送信するコードの書き方。(丸2日作業を瞬殺した話)
<やりたい事>
下記の様なメールリストが、あります。(実際にには数百の宛先に送付する必要があります。)
上のメールリストに対して、下記の様なOutlookメールを個別に自動送信して、楽をしたい。
(尚、手動のBCCメールは、経験上、誰も読まないのを知っているので、楽ですが、ダメです。あくまでも個別メールにしたいと思っている。)```
山田様、
これからは本文です。本日は、こんにちは!テストです。先日はありがとうございました。これはテストです。
```
これですが、メール数通位なら、兎も角、数百通を手動で発信したら、丸2日は掛かります。また、手動特有のメール誤送信がマジで怖いですね。
従って、手動メール送信は論外です。<もし、Windows環境なら>
因みに、過去にも、Windows環境なら構築したことがあります。
「Pytho関連する記事
OTHERカテゴリの最新記事
- 2023.09.29
iOS関連のことを調べてみた2023年09月29日
- 2023.09.29
Ruby関連のことを調べてみた2023年09月29日
- 2023.09.29
Python関連のことを調べてみた2023年09月29日
- 2023.09.29
Rails関連のことを調べてみた2023年09月29日
- 2023.09.29
Python3関連のことを調べてみた2023年09月29日
- 2023.09.29
PHP関連のことを調べてみた2023年09月29日