- 1. WebTransportでもテキストチャットがしたい!(WebSocket比較あり)
- 2. クラスター・サーバー上等でのmatplotlibに関するメモ
- 3. matplotlibのsubplotはもうやめたい その2
- 4. 重相関係数の意味あい
- 5. Python 配列の使い方(自分用)
- 6. AWS Lambdaからsuds-py3を使ってSOAP API連携をしてみた
- 7. テスト
- 8. 俺的、Pythonに標準で搭載された便利機能たち
- 9. Python3: Google Cloud Storage にアクセス
- 10. スライスでtorchのunsqueeze的な処理
- 11. python の zip 関数の動き
- 12. pd.date_rangeより特定日時のインデックスを取得する方法
- 13. Pythonによるメール配信(SMTPAuthenticationError )
- 14. ApexLegendsの戦歴をPythonで取得してみよう
- 15. AOJトライに関する知識知見の記録共有 :Volume0-0008
- 16. 今までの振返り +α(算術計算,変数,リスト辞書 等)
- 17. [Python] 3.10.0
- 18. [Python3 / pandas] colaboratory上で、pandas_profilingのProfileReportを実行するとエラーコンボが発生
- 19. TwitterAPIを使ってTweetをリアルタイムで取得したい
- 20. PythonによるFFTを用いたパワースペクトル推定
WebTransportでもテキストチャットがしたい!(WebSocket比較あり)
# チャットなんてWebSocketで簡単にできるでしょ?
WebTransportをチェックしている皆様こんにちは。
特に仕事でもないのにWebTransporttが気になって仕方ない私です。
(しかも git add 直前に文字化けを直そうとしてファイルが消えましたが挫けません!)さて、前回は簡単なechoをして1対1のやりとりができました。
そこで今回は複数人への送信ということでグループでのテキストチャットルームをやってみます。まあ、WebTransportでもWebSocketとそんなに変わらずすぐできるでしょ。とか思っていました。
## 今回作ったもの
[ソースコードはgithub](https://github.com/alivelime/sample_webtransport_echo/tree/master/chat)
クラスター・サーバー上等でのmatplotlibに関するメモ
– [サーバサイドにおけるmatplotlibによる作図Tips](https://qiita.com/TomokIshii/items/3a26ee4453f535a69e9e)
– matplotlib.use(‘TkAgg’) and matplotlib.use(‘Agg’)
matplotlibのsubplotはもうやめたい その2
Matplotlibのsubplotが使いにく過ぎて、はるか昔にこんな記事を書いた。https://qiita.com/ponnhide/items/fb375a610e4a9c0f743a
今回はその記事の続きで、subplot用の新しいツールをつくってみたという話。# Matplotlibのsubplotは使いにくい
正直言って、Matplotlibの依然としてsubplotは使いにくい。僕はmatplotlibの自由度の高さが好きで、どれだけggplotを布教されてもmatplotlibを使い続けているのだけど、subplot周りの実装は真面目に微妙だと思う。そして、この点は他の人からも指摘がなされ、改善が求められている。– https://twitter.com/kasparmartens/status/1381991445381406722?s=20
– https://github.com/has2k1/plotnine/issues/46これらの要望に対する返しとして、最近matplotlibはある機能を実装してくれた。それが [subplot_mosaic]
重相関係数の意味あい
重回帰分析において,重相関係数の二乗(決定係数ともいうが)は独立変数どもが従属変数をどの程度説明するかを表す。
つまり,重相関係数が 0.5 ということは,独立変数どもが挙って従属変数を説明しようとしているが 0.5^2(Python なら 0.5**2であるが)つまり,0.25(つまり 25 %)しか説明できないということ。これは,ヤバいよね。なお,重回帰分析の最も単純な場合である回帰分析においては,重相関係数は相関係数の絶対値を取ったものであり,重相関係数の二乗は相関係数の二乗に他ならない。
つまり,独立変数と従属変数の間の相関係数が r の場合,重相関係数は abs(r) であり,重相関係数の二乗(決定係数)は r^2 である。相関係数の絶対値が 0.7 以上であれば,「強い相関がある」というように判断されるが,「独立変数は従属変数の 0.7^2 = 0.49 つまり,半分以下しか説明できていないのだよ」ということだ。
“`R
> x = c(3, 2, 4, 5, 1)
> y = c(1, 3, 4, 5, 6)
> ans = lm(y ~ x)
> summ
Python 配列の使い方(自分用)
#リスト(配列)の初期化
角かっこ「[]」で囲み、要素をカンマ「,」区切りで並べる“`python
empty_list = []# 整数配列
int_list = [0, 1, 2]
“`# 要素へのアクセス
###インデックスで
“`python
mylist = list(range(10))# 正数は先頭からのインデックス
n = mylist[1]# 負数は末尾からのインデックス 末尾の要素のインデックスが-1
n = mylist[-2]# popメソッドで指定したインデックスにある要素をリストから取得して削除
value = mylist.pop() # インデックスを指定しない場合は末尾の要素が削除される
print(‘popped value:’, value) # popped value: 9
print(‘mylist:’, mylist) # mylist: [0, 1, 2, 3, 4, 5, 6, 7, 8]
“`
### スライスで
“`python
mylist = list(ran
AWS Lambdaからsuds-py3を使ってSOAP API連携をしてみた
RESTにとって変わられがちですが、ちょっと触る機会があったので、
表題の件を簡単かつざっくり解説していきます。なお連携対象はOracle B2C ServiceのSOAP APIの想定です(http://documentation.custhelp.com/euf/assets/devdocs/unversioned/Connect_KFAPI/Default.htm)
##環境
Python3.8
AWS Lambda プロキシ統合ありライブラリ
suds-py3 1.4.4.1##準備
まずはライブラリをインストール
“`
$ pip3 install suds-py3
“`##実装
内容は連携するAPIに準じて読み替えてください。
インポート関係はこんな感じです。“` python3
import os
import json
from suds.client import Client
from suds.wsse import *
from suds.sudsobject import asdictWSDL = os.environ[
テスト
test
俺的、Pythonに標準で搭載された便利機能たち
Pythonの利点はやはり`pip`を使って超簡単に超便利なモジュールをインストールできること. だが, Python自身も負けてない. ここでは筆者がよく使うPythonに標準搭載の便利だと思う機能を適当に紹介していく. いろんなものを詰め込んだのでかなり雑多な内容になってしまったが, これを読んだ人のPython人生の一助とならんことを願う.
# `functools.partial`
引数を部分的に指定された関数を生み出せる.
“`python
from functools import partialdef super_genius_function(arg1, arg2, arg3, args4, kwarg1=None):
# do something
return# 最初の二つの引数を固定
arg12_fixed = partial(super_genuis_function, 1, 2)
# kerwordで指定もできる
arg34_fixed = partial(super_genuis_function, arg3=3, arg4=4
Python3: Google Cloud Storage にアクセス
GCE の Ubuntu 21.10 で確認した方法です。GCE で実行するので、認証の部分のコードを省略できます。
スクリプトでアクセスする方法はこちら
[Google Cloud Storage にスクリプトでアクセス](https://qiita.com/ekzemplaro/items/cd648c8f14c7421a928b)バケットの一覧
“`py:list_bucket.py
#! /usr/bin/python
#
# list_bucket.py
#
from google.cloud import storage
#
client = storage.Client()
#
for bucket in client.list_buckets():
print(vars(bucket)[‘name’])
print()
#
“`ファイルの一覧
“`py:list_files.py
#! /usr/bin/python
#
# list_files.py
#
from google.cloud import storage
#
スライスでtorchのunsqueeze的な処理
スライスにNoneを追加するとNoneを追加した次元に空の次元が追加される。
“`py
>>> import numpy as np
>>> x = np.ones((32,27,517))
>>> x[:,:,None,:].shape
(32, 27, 1, 517)
“`
python の zip 関数の動き
# zipが何をしているか?
zipがどのように動くか気になったのでpythonチュートリアルで調べた。
[pythonチュートリアル 5. データ構造より抜粋](https://docs.python.org/ja/3/tutorial/datastructures.html#nested-list-comprehensions)
“`python
matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
]
print(list(zip(*matrix)))
“`
>[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]ネストしたfor
“`
vec = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
list = [num for elem in vec for num in elem]
list = []
for elem in vec:
print(elem)
for num in elem:
pd.date_rangeより特定日時のインデックスを取得する方法
追記
`pandas.get_loc()`や`pandas.searchsorted()`というメソッドがあることを教えていただきました.コメント欄をご覧ください.———————————
暗算でも良いですが,パソコンに考えてもらった方が安心ですよね.
numpy.whereを使います.numpyは不要です.コメント欄をご覧ください.“`python3
import pandas as pd
import numpy as np# 時系列の作成
times = pd.date_range(‘2015-04-01 00’, ‘2015-04-30 18′, freq=’6H’)# 特定日時
t = ‘2015-04-13 12’# 特定日時のインデックスの取得
i = np.where(times==t)[0][0]
“`最初の[0]はタプルのアンパック,次の[0]はnumpy.ndarrayのアンパック,最終的にnumpy.int64を返します.
numpy.whereはTrue
Pythonによるメール配信(SMTPAuthenticationError )
環境:Windows10 pro
python 3.9
VsCode勉強の為に
pythonからコードを書いてメールをテスト送信しました。““
from email import message
import smtplibsmtp_host = ‘smtp.gmail.com’
smtp_port = 587
use_smtps = any
from_email =’#####@gmail.com’
to_email = ‘####@outlook.jp’
username = ‘####@gmail.com’
password = ”msg = message.EmailMessage()
msg.set_content(‘Test email’)
msg[‘Subject’] = ‘Test email sub’
msg[‘From’] = from_email
msg[‘To’] = to_emailserver = smtplib.SMTP(smtp_host, smtp_port)
server.ehlo()
server.starttls()
s
ApexLegendsの戦歴をPythonで取得してみよう
# はじめに
この記事ではPythonのライブラリである[ApexTrackerPy](https://github.com/nerrog/ApexTrackerPy)を使用したPythonでのApexlegendsの戦歴の取得方法などを解説します。# 目次
* APIの登録
* APIの種類について
* 登録
* 実際に戦歴を取得してみる
* APIの呼び出し方
* 値を取り出してみる
* おまけ:現在のマップを取得してみる# APIの登録
## APIの種類について
ApexTrackerPyでは[UNOFFICIAL APEX LEGENDS API](https://apexlegendsapi.com/)と[TRACKER NETWORK API](https://tracker.gg/developers/docs/titles/apex)の2種類に対応しています。
UNOFFICIAL APEX LEGENDS APIは戦歴以外にもサーバーステータスやマップローテーションなど多くの情報が取得できます。
戦歴(プレイヤーステータス)
AOJトライに関する知識知見の記録共有 :Volume0-0008
# 概要
Sum of 4 Integershttps://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0008
# コード
TIPS:オペランド定義域を可変化“`
import itertoolsdef calc_num_opr(sm, inf=0, sup=10):
c = range(inf, sup)
return [[a,b,c,d] for a, b, c, d in itertools.product(c, c, c, c) if sum([a,b,c,d]) == sm]def core(arg):
num_opr = calc_num_opr(int(arg))
return len(num_opr), num_oprdef app(*args):
return [[arg, core(arg)] for arg in args]from pprint import pprint
try:
pprint(app(
# b
今までの振返り +α(算術計算,変数,リスト辞書 等)
# 今回の授業資料
# 本日の内容
### 新しいpython3
[Python] 3.10.0
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137182/f6f5fd80-52e6-9e3f-5484-3a03fcbc6e54.png)
Major new features of the 3.10 series, compared to 3.9
Among the new major new features and changes so far:PEP 623 — Deprecate and prepare for the removal of the wstr member in PyUnicodeObject.
PEP 604 — Allow writing union types as X | Y
PEP 612 — Parameter Specification Variables
PEP 626 — Precise line numbers for debugging and other tools.
PEP 618 — Add Optional L
[Python3 / pandas] colaboratory上で、pandas_profilingのProfileReportを実行するとエラーコンボが発生
# Summary(概要)
発生したエラーはこれら。
“`python
# 1. join_axesなんて引き数は知らないよ
TypeError: concat() got an unexpected keyword argument ‘join_axes’# 2. pandas_profiling.mplstyleってファイルが見つからないよ
FileNotFoundError: [Errno 2] No such file or directory: ‘/usr/local/lib/python3.7/dist-packages/pandas_profiling/pandas_profiling.mplstyle’# 3. 新しいバージョン使いたかったらruntime再起動してね
WARNING: The following packages were previously imported in this runtime:
[pandas_profiling]
You must restart the runtime in order to use newly
TwitterAPIを使ってTweetをリアルタイムで取得したい
はじめに
—
* Qiita初めてなので慣れてないです
* SE歴4年ほど(コードを書くのは本業ではない)
* TwitterAPIを使って自由自在にツイートを取得したい
* 飽き性です事前準備
—
* TwitterのDevelopperアカウントの作成
* pythonの実行環境整備(私はjupyterを使用しています)ストリームって何?
—
よくわかりません。
なんかリアルタイムで情報をやりとりするっていう感覚です。とりあえずドキュメントを漁ってみる
—
TwitterAPIのv2ってやつが最新っぽいのでそれを使います
https://developer.twitter.com/en/docs/twitter-apiFilterd streamっていうやつがなんか名前的にそれっぽい
https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/introductionquick startを読んでみる
https://developer.twi
PythonによるFFTを用いたパワースペクトル推定
# はじめに
出来る限り公式ドキュメントに従った実装を心掛けていますが、不慣れなところは見逃していただけると幸いです。本記事は私が書いた[記事](https://uene.hatenablog.com/)を軽く再編集してQiitaに移植したものです。
# 概観
#### はじめに
パワースペクトル(もしくはパワースペクトル密度)の推定方法は様々です。大きく分けて二つの手法が存在します。
> 論文やライブラリではパワースペクトル密度を推定することがほとんどだと思います。パワースペクトルとパワースペクトル密度の違いについては別記事で解説する予定です。ちなみにパワースペクトル密度からパワースペクトルへの変換は比較的簡単に行うことが出来ます。1. パラメトリック手法
1. ノンパラメトリック手法> セミパラメトリックという手法も存在するようですが、私には理解できませんでした。
私は統計学をあまり得意ではないので、それぞれの用語の正しい意味は詳しい人に聞いてみてください。今回