Python3関連のことを調べてみた2019年11月16日

Python3関連のことを調べてみた2019年11月16日

Pythonプログラミングを快適にするWindows + Vim環境の作り方

VimをWindows 10で利用したいが、なかなか苦労しているというユーザーは多いのでは無いでしょうか。

本記事で、Windows 10 上で gVim を使った快適なプログラミング環境を構築する方法について、ご紹介します。

VimでPythonプログラミングを快適にする構成

下記の構成を前提とした構築します。

OS & Python

  • Windows 10 Professional(執筆時点
元記事を表示

RaspberryPiで自分のQiita投稿データを自動収集して定期的にSlackで通知してみた

# はじめに 最近いくつか記事を投稿してきましたが、これまでの合計閲覧数などのデータを見てみたいと思い、ラズパイで環境を作ってみました。今回は、ラズパイで定期的にデータを取得し、1日に1回グラフを作ってSlackに自動送信することをゴールとします。 # 環境 主に開発を行うMacの環境は次の通りです。 “` $sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G9016 “` 使用するラズパイはRaspberry Pi 3 Model Bを使用しています。OSは次の通りです。 “` $ cat /etc/os-release PRETTY_NAME=”Raspbian GNU/Linux 10 (buster)” NAME=”Raspbian GNU/Linux” VERSION_ID=”10″ VERSION=”10 (buster)” VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL=”http://ww
元記事を表示

Django2.2 SQLite3バージョンエラー

#python manage.py runserver 実行時にエラーが発生 “` $ python manage.py runserver (省略) django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17). “` #環境 Python3.6 Django2.2.6 SQLite3.7.13 #対処 どうやら SQLiteのバージョンが3.8.3かそれ以降じゃないとダメらしい。 SQLite3の現在のバージョンを表示 “` $ sqlite3 –version 3.7.13 2013-05-20 “` 現在(2019-11-15)のSQLite3の最新バージョンが3.30.1のためかなり古い。 以下のページを参考にSQLite3をバージョンアップする。 [Django2.2で開発サーバー起動時にSQLite3のエラーが出た場合の対応](https://qiita.com/rururu_kenken/items/8202b30b5
元記事を表示

Windows環境でdarknet使ってYOLOv3の学習、kerasでの実行。コマンドメモ。

#闇の使者ダークネット かっこいいよね ##はじめに darknetのビルドは済んでる前提 学習データのアノテーション作業も済んでる前提 わからない人はここ見てちょ https://github.com/AlexeyAB/darknet ##環境 ・Windows10 ・GeForce GTX1080 ・Python3.6.9 ##学習用 ※tiny-yolo使うときも大体同じ。使う重みファイルが変わるくらい。 用意するファイル ・hogehoge.data (dataフォルダ内に配置、ファイル名は自分が分かりやすいものに) ・yolov3-hogehoge.cfg (コンフィグファイル。darknet.exeと同じ階層に配置) ・darknet53.conv.74 (初期の重みファイル。darknet.exeと同じ階層に配置。 https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects ここから下にスクロールしてくとDLリンクがあるのでダウンロードします) darknet.e
元記事を表示

PythonでC(++)のヘッダファイル(.h)からマクロ定数を取得

「PythonとC++で定数を共有したい,かつC++側の定数はコンパイル時に確定させたい,かつPythonでも同じ変数を使いたい」という特異な例があったのでメモ. Pythonから.hで定義された “`c++:sample.h #ifndef _PARAM #define _PARAM #define NUM 10 #define epoch 100 #endif “` と言うような定数を取り出す.今回は,`const int`などで定義したグローバル変数は場合分けがめんどくさいので考えません. “`python def read_header_and_get_macro(header_filepath): with open(header_filepath, mode=’r’) as f: lst = [s.strip() for s in f.readlines()] comment_flg = False for l in lst: items = l.split() if len(items
元記事を表示

scipy.optimize.minimizeの使い方

[SciPyリファレンス scipy.optimize 日本語訳](https://qiita.com/alchemist/items/dad4a083ce8dc9ca15b0)にいろいろな最適化の関数が書いてあったので、いくつか試してみた。 y = c + a*(x – b)**2の2次関数にガウスノイズを乗せて、これを2次関数で最適化してパラメータ求めてみた。 “`python import numpy as np from matplotlib import pyplot as plt import scipy.optimize as optimize %matplotlib inline “` この後で決定係数のR2や、平均2乗誤差、平均絶対誤差を計算するためにScikit-learnもインポートする。 “`python from sklearn.metrics import r2_score from sklearn.metrics import mean_squared_error from sklearn.metrics import mean_absolu
元記事を表示

Pythonで標準入力を使って生徒の成績を管理するツールを作るには?

標準入力を使って生徒の成績を管理するツールを作ってください。 “save 生徒名 点数“とすると、その生徒の点数を保存。 “save 生徒名 点数“とした場合、  生徒名がすでに保存されている時は、点数を上書きするか警告文を出して、yes/noで上書きの選択を行う。 “get 生徒名“とするとその生徒の点数を表示。  “get 生徒名“を行った場合、生徒が登録されていない場合はErrorと出力させて処理を継続 “quit” とするとプログラムが終了する。 “average” すでに保存されいる生徒全員の平均点 “登録されている生徒XX人の平均点はXX.XX点です” 条件としてsplit関数を使うのと辞書使うことです。
元記事を表示

boxing game を作りたい

#研究室内のハッカソン 恒例となっている研究室内の学生(希望者)によるハッカソンが行われました。 今回、私は加速度センサを使って遊べるものを作ろうと考えました。 そこで、手首にM5StickCをつけて、加速度や角度の変化からパンチやガードを認識して画面になんらかのアクションを表示するものを作ることにしました。 他のメンバーの記事は[こちら](https://qiita.com/Rtakaha/items/f18c4872d62f5aeafb54) #MQTT通信 前準備として`brew install msquitto`を実行してmosquitto 1.6.7をインストールした これが、悲劇の始まりだった… 何度`mosquitto`を実行しても not found command と出てしまい起動しない ググって色々試したが全然うまくいかなかったが、なんとか一つの記事にたどり着いた https://qiita.com/nagayaoh/items/b3d80632e9b5aea68b53 上記の記事によると、パッケージの不具合でうまくいかなかったようでした 記事に従って、起動する
元記事を表示

python3 datetime replaceで20分もはまった

# 悩み “`python from datetime import datetime as dt now = dt.now() print(‘{0:%-M}’.format(now)) now.replace(minute=8) print(‘{0:%-M}’.format(now)) “` 42 8 と出力されてほしかったが、 42 42 と出力されてしまった。 # 答え “`python from datetime import datetime as dt now = dt.now() print(‘{0:%-M}’.format(now)) now = now.replace(minute=8) print(‘{0:%-M}’.format(now)) “` くだらなかった。。。
元記事を表示

固有値から固有ベクトルを求める

今話題の固有値から固有ベクトルを求める論文を実装してみた。 https://arxiv.org/abs/1908.03795 (Twitter 上でRで実装している人をすでに観測しているので、多分 $N$ 番煎じではあることを承知してこの記事を書いてる) 正確には $n$ 次 Hermitian Matrix $A$ に対し、固有ベクトルの各要素の大きさの2乗を求める。 そのため、複素数の位相成分はこの手法では求まらない。 また、Hermitian ではない正方行列にこの手法を適用しても、固有ベクトルの各要素の大きさは求まるとは限らない。 (Hermitian の固有ベクトルは直交するという性質を証明に使っているため) $A$ の$i$ 番目の固有ベクトル$\mathbf{v}\_i$と固有値 $\lambda_i$ と定義する。 また、$A$ の$j$ 行と$j$ 列を削除した行を $M_j$ とする。 “`math M_j = \left[ \begin{array}{ccc|ccc} A_{1,1} &\cdots& A_{1,j-1} & A_{1,j+1} &\c
元記事を表示

Pythonで問題解いてみた Vol.1

#はじめに 今回からAtCoderににある問題を解いて、定期的にその問題の内容や 解説を投稿していこうと思います:relaxed: 何回続くかも分からないし需要があるかも分からないですが、誰かが 問題に詰まった時にお役に立てたら幸いです:kissing_smiling_eyes: では、今回からゆるーく続けていきたいと思うのでよろしくお願いします:grin: #早速いきます! 今回は3問解いてみました! それでは早速問題の説明・解説していきます:stuck_out_tongue_winking_eye: ##「9×9」 #####問題文 高橋君は九九を覚えたので、1以上9以下の2つの整数の積を計算することが できます。それ以外の計算はできません。2 つの整数A,Bが与えられます。 高橋君がA×Bを計算できるならその結果を、できないなら代わりに-1を 出力してください。 #####制約 1 ≤ A ≤ 20 1 ≤ B ≤ 20 入力中のすべての値は整数である。 #####入力 入力は以下の形式で標準入力から与えられる。 A,B #####出力 高橋君が A × Bを計算でき
元記事を表示

Conda 仮想環境の操作 メモ

Condaを使ったPythonの仮想環境「作成・アクティベート・削除・コピー(複製)」の簡易メモです。 ##### 仮想環境の作成 `$ conda create -n 環境名` `$ conda create -n 環境名 python=3.6` SSLErrorが出た場合、パスがすべて通っているか確かめてみてください。 Windowsでは「Anaconda3\Library\bin」を設定していないとエラーになります。 ##### アクティベート `$ activate 環境名` #### 環境から出る `$ deactivate` #### 環境の削除 `$conda env remove -n 環境名` #### 環境のコピー `conda create -n 新規環境 –clone 複製元環境名`
元記事を表示

[入門]二分木を理解するために解説しながら自力実装してみた

# 二分木を理解するために ## 二分木とは 木構造を有する非線形データ構造の一種である。 木ADTでは要素の順序は考慮しない。 二分木はどのノードも子を0から2個有す。よって、ルートとルートより左に展開する左部分木と、右に展開する右部分木で一般に可視化できる。 [Wiki pedia による二分木の解説](https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B%E9%80%A0_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)) ![二分木の図解](https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Sorted_binary_tree.svg/250px-Sorted_binary_tree.svg.png) ## 目的 * 二分木を学ぶことで、データ構造とアルゴリズムに対する理解を深めたい。 * pythonで二分木データ構造を実装する。 * 単に二分木を実装するだけではなく、二分木データ構造の取り扱いかたのハウツーを理
元記事を表示

配列の要素内で最長の文字長を取得する

これより短く書く方法が思いつかなかったので あったら教えてください? “`python li = [“あ”, “いうえお”, “かき”, “くけこ”] print(len(max(li, key=len))) “`
元記事を表示

Pythonで最小二乗法

#概要 ####最小二乗法 最小二乗法は、誤差を伴う測定値の処理において、その誤差の二乗の和を最小にすることで、関係式を求める方法です。 ####プログラムについて 今回作成したプログラムは、予め用意されたデータ`x` `y`をリストにし、そのデータから行列`S` `T`を求め、係数`a`を導く処理となります。また、求めたい多項式の次数を`m`と置いています。 本プログラムは、データ量を変更しても融通が利くような処理を行っています。 #プログラム “`LeastSquares.py # -*- coding: utf-8 -*- #!/usr/bin/env python3 import numpy as np X_data = [10, 20, 50, 70, 100] Y_data = [9.3, 9.8, 10.9, 11.9, 13.1] m = 1 def ST_list(power): S, T = 0, 0 for i, j in zip(X_data,Y_data): S += i**power T += i*
元記事を表示

PythonでNewsAPIから世界54ヵ国のニュースヘッドラインを見る

##[NewsAPI](https://newsapi.org/) とは 世界中のトップニュースをJSON形式で取得出来るAPIです。 そこで今回はクリック1つで世界中のニュースヘッドラインをカテゴリ別に見る事が出来るリストを作ってみました。 以下の様にbusiness、technologyとカテゴリ別に世界のニュースをリストします。 ![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348536/ca2ab987-9df5-2f9a-bb05-5a1357f98095.png) ###取得方法 先ず最初にAPIキーを取得する必要があります。 NewsAPIの仕様と使用方法は[Get started](https://newsapi.org/docs/get-started)を参照して下さい。 1.スクレイピング 基本的なRequestsを使う方法 “`python import requests import json url = (‘https://newsapi.org/v
元記事を表示

二分探索木を理解するために

# 二分探索木を理解するために ## 二分探索木とは 探索を目的としたデータ構造である。 各ノード持つデータに制約を持たせる(親子間の大小関係)ことで、平均演算時間が$O(\log n)$となり、線形探索よりも高速な探索が可能となる。 二分木の一種であるため、二分木のデータ構造をもつ。 ## 目的 * 二分探索木を学ぶことで、データ構造とアルゴリズムに対する理解を深めたい。 * 単に二分探索を実装するだけではなく背景になっているデータ構造の考え方を理解する。 ## 内容 * 下記項目について、リンク先の記事で解説する。 * 二分探索木にとりかかる前に二分木データ構造について学んだ。 * データ構造の考え方に馴染むために、一般木についても学んだ。 * 二分探索木を実装し、データ構造と解決できる問題について学んだ。 * [[入門]二分木を理解するために解説しながら自力実装してみた](https://qiita.com/tagtagtag/items/c5c460633e1ac864937a) * [[入門]一般木入門 工事中](https://qiita.com/t
元記事を表示

Windowsでmatplotlibをインストールしようとするとエラーが出るとき

# 環境 Windows 10 64bit 公式から落としたWindows x86-64 MSI installerでインストールした Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32 を利用 # 状況 py -m pip install matplotlibすると、 __error: Microsoft Visual C++ 14.0 is required__ というエラーが出る。 VC++をインストールしたら、 __cannot open include file ‘ft2build.h’ no such file or directory__ というエラーに変わるが依然としてインストールできない。 # 対処法 https://stackoverflow.com/questions/58693012/installing-matplotlib-on-windows-error-cannot-open-include-file-ft2bui
元記事を表示

配列をインスタンス変数として動的に利用したい

##作業環境 Windows 10 PyCharm ## コード “` class ClassPosition(): def __init__(self, xx, yy, rr): self.x = xx self.y = yy self.r = rr class ClassTest(): def __init__(self): self.arr = [] test = ClassTest() for i in [0,1,2,3]: test.arr.append(ClassPosition(i, i + 1 , i + 2)) print(test.arr[i].x, test.arr[i].y, test.arr[i].r) “` ## 実行結果 “` 0 1 2 1 2 3 2 3 4 3 4 5 “` ##あとがき  pandasのdataframeで取得したデータを整理して利用する場合に、このように配列をインスタンス変数として動的に利用できたらと思ったらこ
元記事を表示

python インスタンス変数でDictionaryとかListとかのサンプル

## python クラス内のインスタンス変数で配列とかDictionaryを宣言するサンプル ##作業環境 Windows 10 PyCharm ## コード 急いでいるのでコードのみメモ。 “` class ClassTest(): def __init__(self): self.t: Dict = {‘東京’:900, ‘横浜’:300, ‘大阪’:250, ‘名古屋’:200, ‘福岡’:150} self.u = dict(a=1, b=2, c=3) self.v: List[int] = [[“はい”, 50, 100], [“いいえ”, 100, 100]] def __del__(self): pass # デストラクタ test = ClassTest() print(test.t[‘東京’]) print(test.u[‘a’]) print(test.v[0][0]) “` ## 実行結果 “` 900 1 はい “` ##あとがき  自分用のメモで
元記事を表示

OTHERカテゴリの最新記事