- 1. [python3][pandas]時間でroundを使う際の細かい話
- 2. プッシュボタンを押すと LINE に通知が飛ぶ Python アプリを、Cyclone V SoC のキット(Atlas)に実装してみた
- 3. AtCoder Beginner Contest(ABC) 277 – Pythonでのバーチャル参加結果と内容整理
- 4. AtCoder Beginner Contest(ABC) 279 – Pythonでのリアルタイム参加結果と内容整理
- 5. pythonのコメント機能について (備忘録)
- 6. Pythonで九九の表を作ります
- 7. Numpyでnanのindexを検索する
- 8. Proxyサーバー経由でPythonライブラリをインストールする方法
- 9. tkinterで残業代計算デスクトップアプリ
- 10. 国旗識別アプリの制作工程。
- 11. paizaラーニング「約数の列挙 Python3編」
- 12. paizaラーニング「約数の個数 Python3編」
- 13. paizaラーニング「1 はどこにある? Python3編」
- 14. paizaラーニング「加算された数列の最小値 Python3編」
- 15. paizaラーニング「加算された数列の最大値 Python3編」
- 16. Djangoでの他のテンプレートの継承とフィルタ機能、カスタムテンプレートフィルタの実装
- 17. DjangoでのDTLの利用と画面遷移
- 18. ゲインアンプ付きA/Dコンバータ(SX8725C)を用いた簡易地震計の製作3
- 19. Djangoでtemplatesファイルを使用してHTMLを表示する
- 20. Python Language – format() built-in Floating Point Rounding(浮動小数点数の端数処理 – 丸め)
[python3][pandas]時間でroundを使う際の細かい話
# pyhton3のdt.round
時間を指定した区切りに丸めることができる。
“`python
rng = pd.date_range(‘1/1/2018 11:59:00′, periods=3, freq=’min’)print(rng)
print(rng.round(‘H’)) # ‘H’:時間で丸める“””出力
DatetimeIndex([‘2018-01-01 11:59:00’, ‘2018-01-01 12:00:00’,
‘2018-01-01 12:01:00′],
dtype=’datetime64[ns]’, freq=’T’)
DatetimeIndex([‘2018-01-01 12:00:00’, ‘2018-01-01 12:00:00’,
‘2018-01-01 12:00:00′],
dtype=’datetime64[ns]’, freq=None)
“””
“`
# ドキュメント
https://pandas.py
プッシュボタンを押すと LINE に通知が飛ぶ Python アプリを、Cyclone V SoC のキット(Atlas)に実装してみた
# もくじ
●[1.はじめに](#1はじめに)
●[2.環境](#2環境)
●[3.構成](#3構成)
●[4.準備 ~Linux 環境作成~](#4-準備-linux-環境作成)
●[5.準備 ~Linux 上で GPIO の制御方法の確認~](#5-準備-linux-上で-gpio-の制御方法の確認)
●[6.準備 ~LINE の送信~](#6-準備-line-の送信)
●[7.Python コード](#7-python-コード)
●[8.実行結果](#8-実行結果)
●[9.おわり](#9-おわりに)## 1.はじめに
以前、[Intel® Cyclone V SoC のキット(Atlas)と PC を LAN ケーブルで繋ぎ、Python で UDP パケット通信させてみた](https://qiita.com/uchiita/items/7326091acc9a6da77622) の記事を作成した際、SoC FPGA を Python で動かすことができれば、色々面白そうと思いました。センサーで取得したデータや FPGA 側のデータを、Python の豊富なライブラリ
AtCoder Beginner Contest(ABC) 277 – Pythonでのバーチャル参加結果と内容整理
# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 275
– 開催日時
– 2022/11/12(土) 21:00 – 22:40
– 実施区分
– バーチャル参加
– 2022/11/13(日)# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|4:02|22ms|
|B問題|AC|14:39|25ms|
|C問題|未提出|-|-|# 4. 解説
## 4-1. A問題
### 4-1-1. 問題文
> (1,2,…,N) を並び替えた数列 P と整数 X が与えら
AtCoder Beginner Contest(ABC) 279 – Pythonでのリアルタイム参加結果と内容整理
# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 279
– 開催日時
– 2022/11/26(土) 21:00 – 22:40
– 実施区分
– リアルタイムRated参加# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|7:14|24ms|
|B問題|AC|10:59|24ms|
|C問題|TLE|-|2208ms|
|D問題|RE|-|24ms|# 4. 解説
## 4-1. A問題
### 4-1-1. 問題文
> v と w のみからなる文字列 S が与えられま
pythonのコメント機能について (備忘録)
※この記事は、エンジニア志望の大学生が勉強のアウトプットとして書きました。コメントを各際に、他にこんなことを気を付けているなどあればご指摘いただけると幸いです。
Pythonでは、1行や複数行にわたってコメントを書くことができる。
#ここにコメントを書く
“””複数行にわたって
コメントを
書くことができる”””– 複数行の場合はトリプルクォートで書いた方が良し。
– コメントは普通、コードの末尾ではなく単独の行に記述すると良し。
– フレーズや単語ではなく、意味が通る文章として記述すべし。
– コメントをするコードと同じレベルでインデントすべし。
– pep8の横文字制限80文字に従うこと。インラインコメントは変数の目的や意味を記述すべし!
⇒変数のデータ型は記述しない(代入文を見ればわかる)
“`Python
human_Weight = 65 #単位はキログラム
human_height = 175 #単位はセンチメートル
“`
コメントはコードの動作ではなく、背景を明かにすべし!
“`
誤り#65を175の2乗で割っている
正 #BMIを計算している
Pythonで九九の表を作ります
## Pythonで九九
エンジニアとして成長するためにアウトプットをして自分の復習になればと思い作成しました。
今回なぜ九九の表を作成するかというと最近娘(6歳)が九九をいえるようになって感心したのがきっかけです。
基本のfor文の復習も兼ねてます。## 二重for文
九九の課題といえばfor文を二重で使うことでしょうか。
実際にコードを書いていきます。“`
for i in range(1, 10):
for j in range(1, 10):
print(i * j, end=” “)
print()
“`
上記のコードを実行すると、
“`
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 3
Numpyでnanのindexを検索する
# Numpyでnanのindexを取得したい
このような場合
“`python:
import numpy as np
a = np.zeros(2, 2)
# a = [[0, 0], [0, 0]]
a[0, 0] = np.nan
# a = [[nan, 0], [0, 0]]
“``a`のなかで`nan`のインデックスである`[0, 0]`が欲しい場合があります。
# 結論
“`python:
np.argwhere(np.nan(a))
# [0, 0]
“`非常にエレガントな手法ですね。
詳細は参考文献をどうぞ(英訳しただけ)# 参考文献
https://stackoverflow.com/questions/37754948/how-to-get-the-indices-list-of-all-nan-value-in-numpy-array
Proxyサーバー経由でPythonライブラリをインストールする方法
# はじめに
社内等、外部ネットワークにプロキシサーバーを経由する必要がある場合、`pip install [package]`ではPythonライブラリのインストールができず、プログラミング履修の導入時に障壁になることなどがあります。
また、これまでは回避のためanacondaをインストールすることである程度のライブラリを予め揃えることができましたが、商用利用の有償化により、一つ一つライブラリを揃え環境の構築が必要になりました。ここではプロキシサーバーを経由したPythonライブラリのインストール方法を2つご紹介します。
例として、`numpy`をインストールする場合のコマンドを例示します。# 環境
OS: Windows10, または Ubuntu18.04LST
※Ubuntu以外のLinuxOSについては試していないため、保証できません。Python: 3系
※Anacondaではなく、[Pythonホームページ](https://www.python.org/)からダウンロード&インストールしたものとします。# 方法
#### 1. コマンドにオプションを付
tkinterで残業代計算デスクトップアプリ
# 初めに
今後デスクトップアプリを作成することになるかもしれないので# code
“`
import tkinter as tk#1時間あたりの賃金
def calc(fee, avrworktime):
return fee / avrworktimeroot = tk.Tk()
root.title(‘残業代チェック’)
root.geometry(‘250×250′)#Labelウィジェット
label_1 = tk.Label(root, text=’収入(基本給)’)
label_2 = tk.Label(root, text=’円’)
label_3 = tk.Label(root, text=’所定労働時間’)
label_4 = tk.Label(root, text=’h’)
label_5 = tk.Label(root, text=’1時間あたりの賃金を計算’)
label_6 = tk.Label(root, text=’計算結果’)
label_7 = tk.Label(root, text=’今月の残業時間’)
#entryウィ
国旗識別アプリの制作工程。
初めまして、フィリピン在住のオンシオと申します。
英語がペラペラなことと、ピアノが弾けるとが私のアピールポイントです。この度は、私の初作品である、G7の国旗の識別をするAIアプリを制作いたしました。
初めて制作した画像分類モデルの制作工程を、本記事にまとめます。:::note info
G7とは「Group of 7」の略称で、アメリカ、イギリス、フランス、ドイツ、イタリア、カナダ、日本の7カ国で構成された先進国首脳会議(政治フォーラム)のことです。
::::::note info
開 発 環 境:GoogleColaboratory
使 用 言 語:Python
使用モジュール:tensorflow 2.9.2(Googleの機械学習用オープンソースライブラリ)
:::## ♦制作工程
1.使用データの準備
2.画像の前処理
3.モデルの定義
4.モデルの学習
5.モデルの評価
6.モデルの保存# 工程1. 使用データの準備
:::note info
データ収集方法:[i crawler(スクレイピングツール)](h
paizaラーニング「約数の列挙 Python3編」
https://paiza.jp/works/mondai/loop_problems2/loop_problems2__divsor_print
#### 私の解答
“`Python3
n = int(input())
for i in range(1, n + 1):
if n % i == 0:
print(i)
“`
#### 解答例
“`Python3
N = int(input())for i in range(1, N + 1):
if N % i == 0:
print(i)
“`
ほぼ同じ解答でした!
paizaラーニング「約数の個数 Python3編」
https://paiza.jp/works/mondai/loop_problems2/loop_problems2__divsor_count
算数で習った、約数の定義を忘れてしまったので、グーグルで調べてみました。
算数パラダイスというウェブサイトに『余りが0になるものが約数なので、10の約数は1,2,5,10です。』と書かれていました。そこで、1から順にあまりが0になるものをリストにし、len関数でその数を求める事にしました。
#### 私の解答
“`Python3
n = int(input())
a = []
for i in range(1,n+1):
if n % i == 0:
a.append(i)
print(len(a))
“`
#### 解答例
“`Python3
N = int(input())div_count = 0
for i in range(1, N + 1):
if N % i == 0:
div_count += 1print(div_count)
“`
paizaラーニング「1 はどこにある? Python3編」
https://paiza.jp/works/mondai/loop_problems2/loop_problems2__seq_one
#### 私の解答
“`Python3
n = int(input())
a = [int(x) for x in input().split()]
for i in range(n):
if a[i] == 1:
print(i + 1)
i = i + 1
“`
#### 解答例
“`Python3
N = int(input())
a = list(map(int, input().split()))for i in range(N):
if a[i] == 1:
print(i + 1)
“`
paizaラーニング「加算された数列の最小値 Python3編」
https://paiza.jp/works/mondai/loop_problems2/loop_problems2__add_minseq
#### 私の解答
“`Python3
n = int(input())
a = (int(x) for x in input().split())
s = []
i = 1
for ele in a:
s.append(ele + i)
i = i + 1
print(min(s))
“`
#### 解答例
“`Python3
N = int(input())
a = list(map(int, input().split()))ans = 10000
for i in range(N):
ans = min(ans, a[i] + (i + 1))print(ans)
“`
– 最小値を保持する変数の初期値は 10000 としていますが、例えば a_i が全て 100 だった場合、その最小値は 101 となるので、もし初期値を 101 より小さくしてしまうと、その場合に対応できません。101 以上でそ
paizaラーニング「加算された数列の最大値 Python3編」
https://paiza.jp/works/mondai/loop_problems2/loop_problems2__add_maxseq
#### 私の解答
“`Python3
n = int(input())
a = (int(x) for x in input().split())
s = []
i = 1
for ele in a:
s.append(ele + i)
i = i + 1
print(max(s))
“`
#### 解答例
“` Python3
N = int(input())
a = list(map(int, input().split()))ans = 0
for i in range(N):
ans = max(ans, a[i] + (i + 1))print(ans)
“`
解答例と比べて、私の解答は長すぎですね。
Djangoでの他のテンプレートの継承とフィルタ機能、カスタムテンプレートフィルタの実装
○他のテンプレートの継承
DTLでは、他のテンプレートを継承して。そのテンプレートの機能をそのまま利用することが出来る。ヘッダーの作成や、画面間で共通する機能を実装し、継承先で独自の内容を記述するようになる。#継承元
“`
{% block content %}
ここの内容は継承先が記載する。
{% endblock %}
“`#継承先
“`
{% extends “base.html” %}{% block content %}
ここに独自の内容を記述する
{% endblock %}
#継承元の要素を利用する場合は{{block.super}}と記載する。
“`
例:#継承元(base.html)
“`
{% block title %}Django大学陸上部{% endblock %}
DjangoでのDTLの利用と画面遷移
○DTL(Django Template Language)
デザインを容易にするPythonのテンプレートエンジン。PythonをHTMLで利用するためのツール。
変数、リスト、辞書型をHTMLの中で表示できる。#app/views.py
“`
def home(request):
my_name = ‘Yamamoto Taro’
favorite_fruits = [‘Apple’, ‘Grape’, ‘Lemon’]
my_info = {
‘name’: ‘Taro’,
‘age’: ’24’
}return render(request, ‘home.html’, context={
‘my_name’:my_name,
‘favorite_fruits’:favorite_fruits,
‘my_info’:my_info,
})
“`#templates/home.html
“`Name: {{my_name
ゲインアンプ付きA/Dコンバータ(SX8725C)を用いた簡易地震計の製作3
# ケースの作成
[ゲインアンプ付きA/Dコンバータ(SX8725C)を用いた簡易地震計の製作 1(製作編)](https://qiita.com/pirotan628/items/9ca181ee34e998c7dd24)
[ゲインアンプ付きA/Dコンバータ(SX8725C)を用いた簡易地震計の製作 2(ノイズ対策)](https://qiita.com/pirotan628/items/f2a7f535399d787e03a8)上記の記事で大体の形が出来てきたので、ケースに入れて使いやすくした。コモンモードコイルは1Hzのノイズに対して除去効果が無かったため取り外した。
![th_DSC_3650.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/88076/a44fae56-6344-4078-ed58-b2691c5cf7c8.png) ![th_DSC_3651.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/
Djangoでtemplatesファイルを使用してHTMLを表示する
Djangoで新しいアプリケーションを作成したその続きとして書く。
そこまでは下のものを参考にする。https://qiita.com/ysk-s/items/52b5c3747d3c10391ec5
○templatesの役割
templateではユーザーからの要求に応じ動的にページを作成して返す機能を持っている。HTML、CSS、JSと同時にPythonのコードを埋め込むことでPythonで生成した値を画面上に出力することが出来る。○Templateの使用
appディレクトリ内にtemplatesフォルダを作成した場合、appディレクトリ内のviews.pyに既にインポートされているrenderを用いて、下のように記述する。#app/views.py
“`
def index(request):
return render(request, ‘app/index.html’)
“`
この記述があると、appディレクトリ内に作成した、appフォルダ内のindex.htmlがこの関数がURLを介して呼ばれた際呼び出される。templatesディレクトリ内にa
Python Language – format() built-in Floating Point Rounding(浮動小数点数の端数処理 – 丸め)
Python では、他の多くの言語と同様に浮動小数点数における端数の丸めが行われます。
__15. Floating Point Arithmetic: Issues and Limitations__
https://docs.python.org/3.9/tutorial/floatingpoint.html__The Perils of Floating Point__
https://www.lahey.com/float.htmPython では IEEE 754 の `Round to nearest, ties to even(最近接丸め(偶数)= 偶数丸め(= 銀行家の丸め =Bankers’ Rounding ))` を採用しています。
__IEEE 754__
https://en.wikipedia.org/wiki/IEEE_754#Rounding_rules※ decimal 等で丸めの方法を変更することも可能です。
__Rounding modes__
https://docs.python.org/3.9/library/decimal.h