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

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

pythonのレスポンス指標ー時間操作編

# この記事では.
ひよっこは、データを加工するときにどれが一番早く処理できるかが想像できない。。:frowning2:
初心者プログラマあるあるのとりあえず動くコード書いて終わるのと違い、レスポンスだけを指標にすれば(コードの可読性は無視、コメントで回避する)正解を探れるだけ良いので今回は時系列の操作を簡単にまとめます。

# 検証方法
1年分の時系列データを準備して、datetimeをdateに変換する。(型は一時無視)
方法は以下の5通り(並びは私が早いと思う順)

1. pandasの標準dtオブジェクト経由
2. pandasのapply経由
3. 文字列にして固定長で取り出す方法
4. loop処理経由

pythonはインタプリタ言語でコンパイル言語より遅いからライブラリを経由しているのに、
わざわざloop処理を使うのは論外に遅いはず。
ライブラリを使っても型があるのを無視して固定長で取り出す方法も遅い、少なくとも型を守るものよりも遅いはず。
applyは汎用関数なので、元のdtオブジェクトを経由できる方法よりは遅い。という感じに考えています。:scales:

# 検

元記事を表示

機械学習モデルの予測値を返すAPIをDockerで作ってみた

# はじめに

Yellowbrickで精度を確認しつつ作った機械学習モデル[^1]を予測APIサーバのような形で活用してみたいと思い、Dockerで作ってみた。
Flaskについてはこちら[^2]、Dockerについてはこちら[^3]を参考にして、APIサーバーから応答が返ってくるところまでを目標にする。

# 環境

環境は以下の通り。

“`
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G8037
“`

Dockerのインストールについては[^4]を参考にした。
ログが結構長かったので、一部省略。

“`
$docker version
Client: Docker Engine – Community
Version: 19.03.4
API version: 1.40
Go version: go1.12.10
(省略)
Server: Docker Engine – Community
Engine:
Vers

元記事を表示

pythonでLinuxコマンド文字列を整形する汎用的なプログラム

# 背景
Linuxコマンドを用いて例えばCPU温度などを定期的にDBに追加しています。
この時にコードをなるべく少なくしようとコマンドだけで色々と調べたのですがなかなか難易度が高かったので作成しました。

# 仕様
汎用的に利用できるようにしたいのでpythonのFormatのような動きを実現させたい。

# コード
こうなりました。

“`python
import sys;
print(sys.argv[1].format(*sys.argv[2].split(” “)) )
“`
* 第一引数:Formatの指定文字列
* 第二引数:空白で区切られたFormatに入れる文字列

## 利用方法

“`sh
mosquitto_sub -t “#” -v |xargs -I@ python3 /home/hashito/command/text2format.py “insert into mqtt.msg (t,m,tm)values(\'{}\’,\'{}\’,UNIX_TIMESTAMP(NOW()))” @ | xargs -I@ mysql -e “@”
`

元記事を表示

AtCoder Grand Contest 040 参戦記

# AtCoder Grand Contest 040 参戦記

## A – Dividing a String

25分で突破したが、WA1なので30分扱い.

`><` の間は0で、`<>` の間は、左右の0から1づつインクリメントしてきた大きい方なので、以下みたいに2パスでやれば解ける.

“`python
S = input()

N = len(S) + 1
t = [0] * N
for i in range(N – 1):
if S[i] == ‘<': t[i + 1] = t[i] + 1 for i in range(N - 2, -1, -1): if S[i] == '>‘:
t[i] = max(t[i], t[i + 1] + 1)
print(sum(t))
“`

## B – Two Contests

全く手付かずで敗退.

元記事を表示

中学校物理で始める数値計算(等加速度運動)

# はじめに
数値計算は楽しいですが、若干敷居が高いように見えます。

以前、数値計算の入門になればと思い、いくつか記事を書きましたが、そもそも電磁界が直感的に想像しにくいこともあり、簡単さが伝わりにくかったように思います。

>数値計算に親しむ(電磁気関連を3編)
https://qiita.com/sandshiP/items/f07f6c1443e024cb775a
https://qiita.com/sandshiP/items/27bc6ee6f079a88b0f08
https://qiita.com/sandshiP/items/2b8b10265d0c11597081

そこで、今回は想像しやすい分野として、日常的な物理現象である『物体の落下』を対象として問題を説いていきたいと思います。

本記事の構成は、以下の通りとします。
1. 公式の整理
2. 実装
3. 計算結果と厳密解の比較
4. 次回への問題の拡張

# 公式と問題の整理
まずは、物体の加速度運動および等速直線運動に関する以下の2つの公式から。

“`math
\begin{align}
a = \fr

元記事を表示

PythonでTwitterのプロフィールと直近のツイートを取得してみた

こんにちは。

4月からPythonを勉強し始めて色々遊んでいたのですが、ふと
###授業中にTwitterが見たい!!!!
となったので
###ターミナルでCUIで見てればバレないんじゃね???
とスクレイピングを覚えたての僕は考えてコードをパチパチして作りました。
#スクレイピングの準備

簡単に言えば、webサイトから指定した情報を抜きt(((抽出する)))技術のことです。

環境はmac os Catalina 10.15です。

Python3のインストールはできている前提で書いていきます。
ターミナルを起動して

“` $username@usernameMacBook-Pro
pip3 install bs4
“`

“`$username@usernameMacBook-Pro
pip3 install requests
“`
をします。

これで環境構築は終わりです。エディターを起動して“`tweet.py“`とでも名前をつけてコードを書きましょう。

Python3のインストール方法がわからない人は適当にググってください。

説明は特にありません。スクレ

元記事を表示

バブルソート

#はじめに
 実装するのは初めてではないのですが、初心者だったころに比べたら少しは理解が深まったかなと思い記事にしてみようかなと思いました。このバブルソート、動きがすごいきれいだなって思います。きれいなものの原理って直感的ではないというかなんというか、、。やはり身近でソートする機会ってトランプの手札かなって思うのですが、初等的整列のなかではこのバブルソートは使ったことが一度もないですね。(みなさんはありますか?笑)

#コード
“`bubble_sort.py
def bubble_sort(A):
flag = 1
i = 0
while flag:
flag = 0
for j in range(len(A)-1,i,-1):
if A[j] < A[j-1]: A[j],A[j-1] = A[j-1],A[j] flag = 1 i += 1 return A ``` #使用方法  引数は任意の配列で、ソート

元記事を表示

プログラミング初心者が最初に覚えるべきPythonの基本的な記述ルール

# はじめに

ここでは、プログラミング言語Pythonを勉強し始めた人が、まず最初に覚えるべき文法、構文を紹介します。
Python3系の使用を前提とします。

# コメントのつけ方

“`python:comment.py
# 1行目のコメント # 行の途中からコメントを書くことも可能。
2行目のコメント # エラーになる。

”’
複数行のコメント
複数行のコメント
”’
“`
‘#’で始まるコメントを改行すると、2行目以降はプログラムの実行範囲と認識され、エラーが発生したり、想定外の動作になることもあるので注意が必要です。
プログラム実行範囲のスクリプトも含め、1行は79文字以下になるようにすると良いです。
コメントはスクリプトのメモとして記載できるほか、実行したくないスクリプトを実行されないようにする(コメントアウト)という使い方もできます。
「複数行のコメント」については、関数の中で書くと、その関数の説明などを示すオブジェクトになり、ここで触れたコメントとは少し違う形になります。

# 文字の出力

プログラムを実行した結果得られる文字などは、print関数を使う

元記事を表示

Pythonでスライド作成の自動化

# どんな記事?
ExcelなどでまとめたデータをPowerPointに自動で移行してくれるツールの作成.
PowerPointで作成するレイアウトが既に決まっていて大量にスライド生産するっていう場合に便利.
![Qiita_fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/164046/1452ea52-0d69-48bf-fcca-0fe31d569661.png)

# 今回作成したもの
とある大会の作品ごとのポスターをパワーポイントで自動作成.
ポスターに入れた情報は以下のもの.

* 作品名
* チーム名
* 作品の画像(今回はjpgだがpngでも良い)
* 作品概要(日本語と英語)

# 実行環境
* Python 3.6.3
* 当初はPython 3.7でやろうとしたがpptxライブラリが使えなかったのでバージョンダウンして3.6に
* macOS High Sierra.ver10.13.6

# 用意するもの
* p

元記事を表示

cannot import name ‘TestCase’ from ‘unittest’

# 解決法

“`
$ python -m unittest
ImportError: cannot import name ‘TestCase’ from ‘unittest’
“`
上記のエラーがでたらファイル名とメソッド名全ての頭に”test”をつけましょう。
unittest.py -> test_unittest.py
みたいな

#わざわざ書いた理由

この初歩的エラーの解決策が直で見つからなかったので。
当たり前過ぎて検索結果順位がさがったんでしょうか、ファイル名・クラス名・メソッド名全てに徹底してtestってつけなきゃいけないんですねぇ

元記事を表示

Python中級者への道しるべ

## はじめに

皆さんPythonでプログラミングしてますか?
Pythonの基本的な文法はある程度理解したけど、もう一歩詳しくなりたい、という方のために、中級的なテクニックや書き方について解説します。

この記事をマスターすれば、あなたも明日からPython中級者になれるかも?
では、始めましょう。

## 変数の代入について

Pythonでは、複数の変数の定義を1行で行うことが可能です。

普通に代入した場合:

“`python
x = 10
y = 12
z = 35

print(x, y, z) # 10 12 35
“`

1行で代入する場合:

“`python
x, y, z = 10, 12, 35

print(x, y, z) # 10 12 35
“`

上記のように、変数定義を1行で済ますことが可能です。
全ての変数の定義を1行で済ますと可読性が下がりますが、ある程度の関係性がある変数の定義は、1行で済ますと可読性が上がります。

また、同じ値を複数の変数に代入する場合は、下記のように書くことも可能です。
この代入方法ですが、ミュータブル(可

元記事を表示

AtCoder Beginners Contest 過去問チャレンジ4

# AtCoder Beginners Contest 過去問チャレンジ4

## ABC126D – Even Relation

探索ですべての頂点について頂点1からの距離を求め、偶数距離のものは0を、奇数距離のものは1を出力すればいい.

“`python
N = int(input())

link = [[] for _ in range(N)]
for _ in range(N – 1):
u, v, w = map(int, input().split())
link[u – 1].append((v – 1, w))
link[v – 1].append((u – 1, w))

d = [-1] * N
d[0] = 0
q = [0]
while q:
p = q.pop()
for n, w in link[p]:
if d[n] == -1:
d[n] = d[p] + w
q.append(n)

for i in d:
print(i % 2)

元記事を表示

Discord Bot と 顔認識を組み合わせてみた ~LT用~

# はじめに
LTで発表する用の資料

今までやってきた顔認識(OpenCV)をボット化してみた
※ 顔認識記事がまだまとまっていません(;・∀・)

お品書きは下記の通り

* なぜ、Discord?
* モジュール,ディレクトリ構造など
* Discord Bot

# なぜ、Discord?
**なんとなくです!**

今まで、Slack Bot で既に作っちゃったしなぁ

でも LINE Bot もなんかなぁ…

そうだ、 **Discord ってボット作れるんじゃね???**

てことで Discord Bot について調べた

公式(discord.py)様

なんか楽しそうなので作ってみた☆

pythonでCGIアプリケーション

#はじめに
pythonの教科書を読んでいたら、cgiアプリケーションを作れることを発見!
今回はすごく簡単に動作確認だけ行って、詳細は次回掲載したいと思う。
では、早速やってみる。

#動かしていく
まず、以下のpythonスクリプト、htmlファイルを作成。

“`python:test.py
import cgi

print(“Content-Type: text/html; charset=utf-8″)

htmltext=”””

Takumi Katayama Qiita python

“””
print(htmltext)
“`

“`html:test.html


Takumi Katayama

元記事を表示

自宅サーバー用CentOS 7.7にpython環境を構築する

# モチベーション
自宅でのプログラミング環境を整備するためにCentOS7にGitLabとMattermostをインストールした自宅サーバーを運用中
(このセットアップは別途記事を準備中。いろいろあってめちゃくちゃ長くなってしまっている…)

GitLabからのいろいろな通知はMattermostで見れるようになっているが、
それ以外にも例えばClamAVでウイルス検知したときや適当なログなどをMattermostのプライベートチャネルに送れたら管理が楽になりそう。Gmailは大量のスパムに埋もれるし。
pythonにslackwebというslack等々にメッセージを送れるライブラリがあるようなので、そのインストールが最終目標。

とはいえ、そもそもpythonについてはサーバー内で特に弄っていなかったため、CentOS 7デフォルトの2.7ではなく3系統が使えるように環境を構築する。
もとの環境を汚さないように適当な仮想環境を作るというのでググってみると、pyenvとpipenvによる仮想環境が良さそうだったので当面それを試す。

$と

元記事を表示

MacのPythonを2系から3系にアップデートする

# 概要
Macには元からPythonがインストールされていますが、OS 10.15の時点でもバージョンが古い2系です。実際にPythonを書くとなると皆さん3系にアップデートされているようです。そこで自分も3系にアップデートをしたのでその際の手順を記録します。

### 参考URL
https://prog-8.com/docs/python-env

### 作業環境
Mac OS 10.15 Catalina
固定ネットワーク回線

# Pythonのアップデート手順
Mac環境でオススメされている手順は下記のようです。

* 現在インストールされているPythonのバージョンを確認
* Homebrewをインストール
* Homebrew を使ってpyenvをインストール
* pyenv を設定
* pyenvを使ってPython 3系をインストール

### 現在インストールされているPythonのバージョンを確認
まずは念のため自分のMacのPythonのバージョンを確認します。ターミナルを開いて下記のコマンドを入力するとバージョンが表示されます。

“`
$ Pyth

元記事を表示

pybitflyerを使うBotを、Cloud9で動作させる

#概要

pybitflyerを用いたソースをCloud9で動かすときにはまったので備防録

#Python3系への変更

Cloud9 で BitMEX のBotをTESTNETで動かす
https://qiita.com/aisurta/items/8990820f48457bf17cf0

で書いたときはCloud9はデフォルトのPythonは2系ですよといったが、現在(2019/11/02)時点では3系がデフォルトになっているため、~/.bashrcを編集する必要はない

#requests、pyyaml等のインストール

ただし、pipのインストール先はデフォルトが

“`sh
/usr/local/lib/python2.7/site-packages
“`

なので単純に

“`sh
pip install requests
“`

だけだとpythonで呼び出すときに

“`sh
ModuleNotFoundError: No module named ‘requests’
“`
というエラーが出る。そこで以下を入力。

“`sh
sudo update

元記事を表示

Discord bot備忘録 ①ボット作成編

# はじめに
Discord bot を作成した備忘録

とある事情でDiscord bot を作成したいと思ったので、bot作成から様々なアクションの備忘録
slackbot以外にも手を出してみたかった

お品書きは以下の通り

* Discord とは
* Discord bot の作成方法
* モジュール,ディレクトリ構造など
* いろいろ作ってみた

# Discord とは
> Discord(ディスコード)とは、~~~ 音声通話・VoIPフリーソフトウェアである。
> (Wikipediaより)

私は今までSlackみたいに使ったことが何度かあった

SlackにボットがあるんだからDiscordも…と思って調べてみたらdiscordにもあったので作ってみようと

# Discord bot の作成方法

discord developerから作成

Applicatio

元記事を表示

「傷口に貼るアレ」で例える文字コード処理 ~python3で文字化けファイル名操作~

# はじめに

Pythonで日本語ファイル名を処理する需要があって,本記事を書くに至った.テキストファイルの読み書きの際の文字コード指定は比較的容易にできる.しかし,__ファイル名__にshift-jisといった文字列が用いられた際,いわゆる文字コード間の変換が必要となり,その理解になかなか苦労した.
同じ日本語記載のファイル名でも,文字コードがutf-8かshift-jisかでは全く別物.ファイル名を表示するUIが頭よく解釈してくれるおかげで,普段は頭を使わず作業ができるものの,pythonでその処理が必要となった場合,文字コードの混交(扱うファイルによって文字コードが異なる状況)は非常に厄介となる.
というわけで,今回はそれぞれの文字コードの表示や変換を理解しつつ,最終的にはshift-jisの日本語ファイル名を,python3のデフォルトであるutf-8に変換することを目指す.

想定は3系です.**3系**です(文字コード関連なので大事).
本記事の文字コード関連で必要な知識は,ほとんどは[**公式サイト**](https://docs.python.org/ja/3.6/h

元記事を表示

初心者がUE4でルービックキューブ風なものを作って強化学習用のライブラリにしたい #3

前回に引き続き初心者がUE4を絡めたPythonライブラリを作れないか色々進めていく記事です(ほぼ自分のための備忘録としての面が強い・・)。

最初 : [#1](https://qiita.com/simonritchie/items/e8d84c2941b5bd2862f5)
前回 : [#2](https://qiita.com/simonritchie/items/c72e24368909f4fb196e)

# 回転処理の関数のブラッシュアップ

前回の記事で作った回転の関数が、少々煩雑な気がしてきており、且つ何個も作る形になる(なるべくシンプルにしたい)ので、ブループリントがシンプルになるように抽象化された関数を挟んだり等、変更していきます(DRY原則的に)。

assert用の処理は加えてあるので、躊躇せずがっつり手を加えていきます。

## 移動のアニメーションの関数の抽象化

applyMoveAnimValueという関数を追加して、各軸の回転とアニメーションの関数から共通で利用し、アニメーションに必要なパラメーターを渡してアニメーションさせるようにします。

![i

元記事を表示

OTHERカテゴリの最新記事