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

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

Pythonでクラスの引数や戻り値の型アノテーションに自己のクラスを指定する

## 型アノテーションに自己のクラスを指定できない “`Python:list_node.py class ListNode: def __init__(self, val: int, next: ListNode): self.val = val self.next = next “` 上記(片方向連結リストのコンストラクタ)のように型アノテーションを書いたところ、ListNodeが定義されていないと警告が表示された。 > undefined name ‘ListNode’ ## Python3.7以上の場合: `from __future__ import annotations`を使用する “`Python:list_node.py from __future__ import annotations class ListNode: def __init__(self, val: int, next: ListNode): self.val = val self.next = ne
元記事を表示

分散分析の平方和のタイプについてまとめた

# はじめに 2要因以上のアンバランスなデータの分散分析をする場合、平方和の計算にはいくつかの方法があります。SASのGLM procedure[^1]では「type I」「type II」「type III」「type IV」の4種類から選べるみたいなので、この4種類がメジャーな方法なんだと思います。今回はその中でtype I〜type IIIの違いについて二元配置分散分析を例にして勉強したことをまとめておくことにします。 [^1]: SASで分散分析するときに使うやつです。 #アンバランスなデータ アンバランスなデータとは以下のようにセルによっての観測値の数が異なるデータのことです。要因Aと要因Bにそれぞれ2つの水準がある以下の表のようなデータを考えます。$A_2B_1$のセルには観測値が2つありますが、それ以外のセルには値が一つしかありません。 | | $B_1$ | $B_2$ | |:-:|:-:|:-:| | $A_1$ | $1$ | $13$ | | $A_2$ | $5,8$ | $2$ | 全てのセルで観測値の数が同じ(バランスのとれたデータ)で
元記事を表示

Twitterのトレンドを取得する

“`python import urllib from requests_oauthlib import OAuth1 import requests import sys def main(): # APIの秘密鍵 CK = ‘your key’ # コンシューマーキー CKS = ‘your key’ # コンシューマーシークレット AT = ‘your key’ # アクセストークン ATS = ‘your key’ # アクセストークンシークレット tweets = get_trend(CK, CKS, AT, ATS,) # 検索結果を表示 print(tweets[0:3]) def get_trend(CK, CKS, AT, ATS,): # リクエスト url = “https://api.twitter.com/1.1/trends/place.json?id=23424856” auth = OAuth1(CK, CKS, AT, ATS) respo
元記事を表示

Wagtailのすすめ(3) ページのツリー構造を理解し,利用しよう

# はじめに Wagtailの管理サイトでは,既存のページにADD CHILD PAGEすることで新しいページインスタンスを作成する.例えば,前回は,デフォルトで用意されてる`HomePage`クラスのインスタンス(”Welcome to your new Wagtail site!”ページ)の子要素として,`TopPage`クラスのインスタンスを1つ生成したことを思い出そう. この結果,(デフォルトの`HomePage`インスタンス以外の)すべてのページインスタンスはそれぞれ,ただ1つの親要素をもつことになる.また,各ページインスタンスは複数の子要素をもつことができる.このように,Wagtailの中のページインスタンスはすべてツリー構造で規定される親子関係で互いに結ばれていると言える. 各ページのURLもこのツリー構造に従って自動的に付与される(ので,urls.pyでのルーティングの指定は不要になる).例えば,デフォルトの`HomePage`インスタンスのアドレスが,初期設定の https://ホスト名/ のままであるとすると,その子要素として作成されたある`TopPage
元記事を表示

PythonとりあえずマスターRTA

既にC/C++やFortranといった古い言語を知っている人に向けたPythonテキストです。 やりたいことは各自あるけれども、そのやりたいことを「Python やりたいこと」で検索しても、そもそも読めないから理解できないという人に向けて、最速で最低限を学ぶことを目指します。 ### 目指す最低限ライン – 環境構築(RTA版) – 変数とクラスとメソッド – コンソール出力 – リストと辞書 – numpy (便利なモジュール) – 【おまけ】その他の構文 これらをマスターするのではなく、何となく知っている感をつかむのが目標です。ですので、C/C++やFortranの知識で互換性があるものは省略しています。 ***出力内容とか、環境によって微妙に違うかもしれません。本質的でない出力命令も書いてません。情報の選択は個人的見解に基づきます。他の人は別な点を学ぶよう勧めるかもしれません。細かいことは気にしないでください。*** # 環境構築(RTA版) [Anaconda(リンク先)](https://www.python.jp/install/anaconda/index.h
元記事を表示

tkinterでサイコロを作ろう

#始めに ふと自分のオリジナルアプリをpythonで作ってみようと思い、tkinterを使ってみました。しかし、ボタンの押された時の処理がなかなか分からず苦労したので記事にしました。tkinterでボタンが押された時の処理をどう書けばいいのか分からない人や、ラベルの内容の変更方法の知りたい方は読んで下さい。 #ソースコード “` python # 必要なライブラリーを読み込む import tkinter as tk import random # 画面の設定 root = tk.Tk() root.title(“Dice.app”) root.geometry(‘200×150’) # ボタンが押された時の処理 def dice(event): # ランダムな整数を生成して、labelの内容を書き換える value[“text”] = random.randint(1,6) value = tk.Label(text=”0″,font=(“”,80)) value.pack(fill = ‘x’, padx=20, side = ‘top’) #
元記事を表示

【Python】PyCharmの環境設定(インストール、インタプリタ設定、パッケージの追加)Mac環境

こんにちは、かをるです。

今回は、GUIツールである【PyCharm】をつかってPythonの環境構築を行なっていきます。

PyCharmとは、Pythonの統合開発環境です。

コマンドラインによる環境開発よりもこういったツールを使いこなすことで、

元記事を表示

多次元連想配列のソート

[Pythonで少し複雑な辞書オブジェクトをsortする \- 午後から→オーバークロック](http://nemupm.hatenablog.com/entry/2014/08/06/223026) [Perlのsortの基本的なやつ \- Qiita](https://qiita.com/otaka/items/af69693e68052e7ca02c) ### Python “`py:s.py dict = { 1: { ‘name’: ‘A’, ‘age’: 30, }, 2: { ‘name’: ‘B’, ‘age’: 31, }, 3: { ‘name’: ‘C’, ‘age’: 29, }, } for i in sorted(dict.items(), key=lambda x: x[1][‘age’]
元記事を表示

全ての点を通って最短で移動する経路を探したい

#前回の続き [前回の記事](https://qiita.com/canonno/items/de3a8f1a585d4b83a54b)ではいくつかの点をとったときに、始点から終点までの最短経路を求めるコードを読み解きました。 前回のコードでは全ての点を経由することができなかったので、その部分を少し考えてみます。 結局色々失敗してる最適化のお勉強メモですのでご了承ください。 色々まとまっている教科書は[こちら](https://qiita.com/SaitoTsutomu/items/bfbf4c185ed7004b5721)。 #実装内容 ##前回の実装 ある点に注目した時に、その点に入る道とその点から出る道の本数の関係を定式化しました。 始点の場合はその点から出る道のほうが一本多く、終点の場合はその点に入る道の方が一本多い、 それ以外については双方が同数になるという実装です。 この実装だと「全ての点を通った」最短経路にはならないので、その部分をトライしてみます。 “`py for nd in g.nodes(): m += lpSum(x[k] for k, (i,
元記事を表示

じぶんpython環境メモ

“`python katayamashunyuunoMacBook-Pro:~ katayamashunsuke$ which python /Users/katayamashunsuke/.pyenv/shims/python #pyenvのpythonを使っている katayamashunyuunoMacBook-Pro:~ katayamashunsuke$ which pip /Users/katayamashunsuke/.pyenv/shims/pip #pipもpyenv由来 katayamashunyuunoMacBook-Pro:~ katayamashunsuke$ which conda katayamashunyuunoMacBook-Pro:~ katayamashunsuke$ which anaconda #conda anacondaは入ってない katayamashunyuunoMacBook-Pro:~ katayamashunsuke$ pyenv versions system 3.6.5 * 3.7.4 (set by /Use
元記事を表示

PythonでZoomのミーティングをスケジュールする

あけましておめでとうございます。 Zoomのミーティングを予約することが地味に面倒だと思うこともあり、プログラムを書いてみました。 ログインして、時間を選択して…と意外に手数が多いので。 [pyzoom](https://pypi.org/project/pyzoom/)というライブラリを使うと簡単にできるようですが、 使いこなすのが難しい(というよりかゆいところのセッティングを変える方法がいまいち分からなかった)のと、勉強を兼ねてclassを組んでみました。 APIキーとシークレットキーはZOOMのマーケットプレイスで取得ができます。 https://marketplace.zoom.us/develop/create “`python import requests import json from datetime import datetime import jwt import time import random from pprint import pprint class ZoomClient(object): URL = ‘https://api.z
元記事を表示

HoloViewsとBokehでぐりぐり動かせるグラフを描く

職場でのpython導入を画策中。 エクセルで出来なくてPythonで出来ることがないかなー、と模索していたら、 **Bokeh**というライブラリを使って**インタラクティブなグラフ**が書けるとのこと。 [こちら](https://qiita.com/driller/items/53be86cea3c3201e7e0f)の記事で気になっていた**HoloViews**と合わせて色々調べたのでまとめてみた。 #インタラクティブなグラフって? ユーザーの操作に対して応答するグラフを指す。(インタラクティブ=双方向の~という意味) ![holoviewデモ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/642673/bf1ab2cf-9e96-0693-0301-b697e76a5e8b.gif) こんな感じでマウスでぐりぐり動かしたり、ズームしたり、情報を表示させたりできる。 #環境 とりあえず手っ取り早く取り掛かりたかったので、GoogleColaboratoryで実装。 そのため本稿ではライブラ
元記事を表示

LINE Messaging APIを使って知りたい地域の天気をトーク画面に送信してみる

#はじめに 初アドベントカレンダーです! 大学時代から色々困った際にはQiitaを参考にしていたので、あまり知識がないのに投稿して良いのかと思いますが、多めに見てください、、 今回作成したものとしては、「LINE Message API」を使って知りたい地域の天気情報をLINE Botから送信してもらおうというものです。 – 使用した言語等 – python 3.8.6 – heroku – yahoo天気情報(今回は以前自分で[投稿した記事]()のデータを使用しました) – SQLite #SQLiteにデータを格納しよう DBの扱い方は多少できますがなかなか面倒だなと思っていました。ですが、意外にもSQLiteだと簡単にできました。 参考にさせていただいた記事は [こちら1](https://qiita.com/mu-tech/items/4deacbd844cda61fa9e6) [こちら2](https://qiita.com/mu-tech/items/4cfb22670232b671700d) 「こちら1」ではcsvファイルからデータをインポートする
元記事を表示

[Python] 動的計画法 TDPC D

#[TDPC D](https://atcoder.jp/contests/tdpc/tasks/tdpc_dice) 部分構造最適性と部分問題重複性を有するので、動的計画法を検討する。 問題内のデータをそのまま実装するのは難しいので、単純化する必要がある。 積について考えるので、サイコロの目に存在する素因数 2,3,5 の指数のみを考えれば良い。 $10^{18}<2^{60}$ なので、指数として考える値はそれぞれ 60 以下でよいです。 動的計画法の設計は次の通り。 $dp[i][p_2][p_3][p_5]$の定義: $i$ 回振ったときに、出た目の積に含まれる素因数 2,3,5 の個数がそれぞれ$p_2,p_3,p_5$となる確率 dpの漸化式: $D=2^a 3^b 5^c$のとき ```math dp[n][p_2][p_3][p_5]=\sum_{i=0}^n\sum_{p_2\ge a, p_3 \ge b, p_5 \ge c}dp[i][p_2][p_3][p_5] ``` dp初期条件: $dp[0][0][0][0]=1$(0 回振ったとき、
元記事を表示

3. Pythonによる自然言語処理 5-3. 日本語文の感情値分析[単語感情極性値対応表]

* 感情分析でネガポジの極性値を取得する元となる感情値辞書は、日本語では次の3つが挙げられます。 * [単語感情極性値対応表](http://www.lr.pi.titech.ac.jp/~takamura/pndic_ja.html) * [日本語評価極性辞書](https://www.cl.ecei.tohoku.ac.jp/index.php?Open%20Resources%2FJapanese%20Sentiment%20Polarity%20Dictionary) * [Polar Phrase Dictionary](http://www.tkl.iis.u-tokyo.ac.jp/~kaji/polardic/) * 本記事では全 55,125 語が登録された「単語感情極性値対応表」を利用させて頂きます。上記公式サイトによれば『岩波国語辞書』をリソースとして、感情極性値は語彙ネットワーク(筆者注 : 語や語句の意味的な関連性を示すネットワーク)を利用して自動的に計算された-1 から +1 の実数値となっています。 #⑴ 「単語感情極性値対応表」
元記事を表示

データの数値的要約 

データ解析の基本的な要約法である数値的要約について書いていきます。 #一次元データの要約 “` import numpy as np x=np.array([1,2,3,4.5,5,6.5,7,8,9,10]) average=np.mean(x) ///平均値  mean関数/// (Out 5.6) med=np.median(x) ///中央値  median関数/// (Out 5.75) var.p=np.var(x) ///標本分散  var関数/// (Out 8.19) std=np.std(x) ///標準偏差  std関数/// (Out 2.86) “` 各言葉の意味についてはこちらを参考にしてください。 https://note.com/karaage_love/n/n6f617d38c528 #二次元データの要約 “` import numpy as np import matplotlib.pyplot as plt array=np.loadtxt(fname=’example.csv’,delimiter
元記事を表示

(Java、JavaScript、Python)文字列処理の比較

# Java、JavaScript、Pythonの処理比較 最近JavaScriptとPythonの勉強を始めました。 学んだことの整理として、Java、JavaScript、Pythonの3言語の処理比較を記事にしていこうと思います。 今回は文字列処理です。 ## 文字列処理の比較一覧 |処理内容|Java|JavaScript|Python| |—|—|—|—| |文字列長|length()|length|len(文字列)| |一致比較|equals(比較文字)
equalsIgnoreCase(比較文字)|==比較演算子
===比較演算子|==比較演算子| |検索|indexOf(検索文字列)
lastIndexOf(検索文字列)
contains(検索文字列)
startsWith(検索文字列)
endsWith(検索文字列)
|indexOf(検索文字列)
lastIndexOf(検索文字列)
includes(検索文字列)
startsWith(検索文字列)
endsWith(検索文字列
元記事を表示

macOSでpythonを使えるようにした

### 背景 macOS BigSurでpythonをつかおうとおもった。 (CuteRというコマンドを使いたかった:[CuteRでQRコード画像をつくった](https://qiita.com/hann-solo/items/fe0e031b3d0b5be7e0cd)) ところが、`pip`をつかうと “`bash $ pip install dyld: Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python Reason: image not found Abort trap: 6 “` CuteRでQRコード画像をつくった
### 背景 年賀状にQRコードを貼ろうとおもった。ふつうのじゃおもしろくないし、真ん中にロゴが入っているのもちょっと違うし。CuteRというpythonで書かれたコマンドがおもしろそうなので、使えるようにしてみた。 ↑ こんなかんじのQRコードがつくれるらしい! ほかでも遊べそうw ### pythonのインストール 別記事でまとめた ⇒ [macOSでpythonを使えるようにした](https://qiita.com/hann-solo/items/674140a69bcb48aba38c) ### CuteRのインストール 作業ディレクトリを作成して移動 “`bash $ mkdir CuteR $ cd CuteR “` つくったディレクトリに`venv`で仮想環境をつくり、アクティベート “`bash $ python3.9 -m venv .venv $ . .ven
元記事を表示

plotlyで3次元表示

今年の年賀状の中心のなる図では、海洋予測モデルの流速を3次元地形と一緒に表示した。 ![2021nenga2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77672/ce1e8b85-8975-4211-c43c-0d55d3b7ccd4.gif) [plotly] (https://plotly.com/python/)で作成した。Jupyterlab上でぐりぐり動かすこともできる。 ![8e4cfffd10104cc389c5bd302683c667.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77672/99e8e040-7e2b-e521-ab40-c40781d78702.gif) データを読み込む所は省略して、図を描く部分のコードは以下の通り。 go.Surfaceが3次元的に地形を描くところで、xがx軸、yがy軸、地形のデータがzに入っている。Ctopoは彩色のためのカラースケール。 go.
元記事を表示

OTHERカテゴリの最新記事