Python3関連のことを調べてみた2022年12月02日

Python3関連のことを調べてみた2022年12月02日

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 / avrworktime

root = 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 += 1

print(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.htm

Python では 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

元記事を表示

【エラー集】ERROR: Could not build wheels for pynbody, h5py…

pip install でパッケージをインストールしようとしたら
“ERROR: Could not build wheels for pynbody, h5py…”
というエラーが出た。

pip3 install –upgrade pip
pip3 install h5py
など、色々試しても依然だめ。

正常にpip installできた別のPCとの環境の違いを確認したところ、
どうやらPythonのバージョンが違うらしい。

Python3.11を使っていたのを、代わりにPython3.8でやってみたら上手くいった。
ちなみに3.9以降のバージョンで問題が発生するようだ。

元記事を表示

Magentaを用いた機械学習作曲入門(Google Colaboratoryで実行)

こんにちは。[東北TECH道場 郡山道場](http://koriyama.tohokutechdojo.org/)でスタッフをしています。今年度(第7期)は [Google Colaboratory](https://qiita.com/Aster_ideatech/items/3ae6ea5e5a011ebcd0b7)を使用して、Python の基礎を学ぼうということで月に1回活動しています。そこで、「Magentaを用いた機械学習作曲入門」という講座をGithubに公開しました。「Open In Colab」ボタンを押すと「Google Colaboratory」で開いて実行することができます。どなたかのお役に立てれば幸いです。

# 「Magentaを用いた機械学習作曲入門」
https://github.com/tomato-sugar/python_lesson/tree/main/magenta_basic

# 講座の内容
## magenta_basic1.ipynb
Ⅰ Magentaの概要
(1) Magentaとは
(2) Magentaに

元記事を表示

USPTO assignmentデータで遊ぶ

# 1.はじめに
* この記事は[知財系もっと Advent Calendar 2022](https://adventar.org/calendars/8055)の記事です。
* 特許は自分(自社)で生み出すだけでなくて、他者(他社)から獲得することも多いです。有名なのは[Googleの事例など](https://www2.deloitte.com/jp/ja/pages/strategy/articles/ipa/ip-license-google-20161221.html)。特許の譲渡(assignment)事例はその企業の知財での戦い方も伺うことができるので調べると結構面白い。USPTOは使いやすく特許譲渡データを提供してくれているので、これで遊んでみました。

# 2.方法(2パターン)
とりあえずデータを入手しようとということで、USPTO関連のサイトを放浪して、以下の2つの方法(API使う、自前でデータベース作成)を検討。

## 2-1.APIを使う
![image.png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

MeCabのタブ区切りの右のCSVフィールドどうやって区切ってる?

うちではこういうの書いて使ってるというメモ。

“`python3:mecab_toolbox.py
#! /bin/python
# coding: utf-8

from io import StringIO
import csv

def csv_splitter(csv_line, empty_elem=”):
fin = StringIO(str(csv_line)) # バイナリにしないとcsvのnextで怒られる
splitted_line = next(csv.reader(fin))
fin.close()
ret = []
for elem in splitted_line:
if elem:
ret.append(elem)
else:
ret.append(empty_elem)
return ret

def csv_joinner(listed_line):
ret = []
for elem in

元記事を表示

[CICD#0]DockerfileによるCentOS7コンテナの構築 ※現在(2022/11/29時点)作成中

gilab+ansible+gitlab-runnerでITインフラのCI/CDを実現するプロセス
※環境構築も本記事も絶賛作成途中でございます。

# 本稿の目的
DockerコンテナのCentOS上にansible+gitlab-runnerのCI/CD環境を構築するのに
ベースとなるCentOSになんのライブラリを突っ込むのが適切なのかを知ることが目的です。

# 全体構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408313/e12005e3-3e2a-4db2-affb-667f2698fc82.png)

# 本稿で解説する部分(コンテナ1)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408313/11682137-0a5f-69a6-c2ad-86e461f2f220.png)

# 結論
最終的に出来上がったコンテナ1のDockerfileを記載します。
“`

元記事を表示

pythonanywhere.comで自作アプリ公開

PythonとFlaskで作ったウェブアプリをレンタルサーバーで公開しようとしましたが、エラーの対処が難しくpythonanywhere.comで公開することにしました。

エラーが出たのは、コアサーバーです。
V1プランですが、サポートに確認したところpipは、利用者に権限が無いと言われました。
また、Flaskもnotebookも使えないと言われてしまいました。
ネットでコアサーバーでPythonで作ったアプリを公開する記事をみかけましたが、挑戦される方は、注意が必要です。

Pythonでアプリを作る手順はたくさん公開されていますが、デブロイしたり、アプロを公開したりする手順の記事が少ないように思えたので書きました。

こちらの記事を参考にしました。

https://qiita.com/dem_kk/items/92c16ebbe3bfba669025

デブロイするファイルをまとめたZipファイルを解凍するときは、予めアプリのフォルダを作っておいてから解凍すると良いです。

下記のコマンドで、仮想環境に入ることができました。
“`bash
. app/bin/activ

元記事を表示

OTHERカテゴリの最新記事