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

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

「新・明解Pythonで学ぶアルゴリズムとデータ構造」で勉強日記#22

【出典】[「新・明解Pythonで学ぶアルゴリズムとデータ構造」](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0-%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0%E6%9C%9B%E6%B4%8B/dp/4815603197/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1BG3JS7CKMZA0&keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%

元記事を表示

pythonでプロットしてみる#3

前回はptsファイルを二次元でプロットしてみた
勉強ついでに三次元でのプロットもやってみようと思う!
“`20220228.pts
35.9528 397.0 188
39.2651 397.0 188
39.3750 521.0 188
40.6219 389.0 188
40.4791 516.0 188
47.4060 393.0 188
49.5154 394.0 188
48.1366 807.0 188
50.2460 420.0 188
51.4984 398.0 188
51.8555 407.0 188
52.3553 404.0 188
51.8390 786.0 188
53.6847 758.0 188
54.4373 752.0 188
55.0415 746.0 188
55.6677 738.0 188
56.4203 732.0 188
56.9037 726.0 188
57.6398 717.0 188
58.2605 712.0 188
58.8702 706.0 188
59.4965 700.0 188
60.1062 694.0 188
6

元記事を表示

Pythonでfirestoreライブラリがインポートできない…(VSCode)

# 原因
VSCodeのインタプリタ設定が誤っていました。
# 事象
launch.jsonおよびsettings.jsonの設定でパスは通っているはずなのに、「from firebase_admin import firestore」で下記エラーが発生・・・なぜ?
“`
例外が発生しました: ImportError
Failed to import the Cloud Firestore library for Python. Make sure to install the “google-cloud-firestore” module.
“`
※コマンドラインからは実行可能だけど、VSCodeでデバッグ実行しようとするとエラー。VSCodeの設定がどこかおかしい!

# 対応
①コマンドパレットを開いて「インタープリターを選択」
windowsの場合、Ctrl+Shift+P で開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/364867/e457ebec-5553-b

元記事を表示

QISkit ドイチ・ジョサのアルゴリズム

1. はじめに
参考文献2)では,2ビットのドイチ・ジョサのアルゴリズムが紹介されている.本報告では,アルゴリズムの定式化について説明するとともに,4ビットの場合(拡張は可能)についてプログラムを作成したので報告する.

2.問題設定
1)ドイチ・ジョサのアルゴリズムの定式化
2)2ビット,4ビットのドイチ・ジョサのアルゴリズムの作成
3)解析システム
  RaspberryPi4+Python+QISkit
3. ドイチ・ジョサのアルゴリズム
参考文献1),2),3)他を参考にして纏めておく.
3.1目的
ビット列を入力として受け取り,0 または1のいずれかを返す以下のようなブール関数fがあるとき,
f({x0,x1,x2,…})→0または1(ここで,xnは0または1)
このブール関数の特性は,分布型か定値型かのどちらかである.定値型の場合は,任意の入力に対してすべて0またはすべて1を返しますが,分布型の場合は、半分の入力に対して0を返し、残りの半分の入力には1を返します.問題は,与えられた関数が分布型か定値型かを判断することである.
ドイチ-ジョサ問題は、1ビットであるドイチ

元記事を表示

pythonでプロットしてみる#2

前回pythonでptsファイルの中身をプロットしてみた
ちゃんと指定した点の形でプロットできたことを確認したが、、ここで問題発生!
実際に取得している点群とプロットした形が違うことが分かった
以下のコードで画像の保存が可能
“`main.py
import math
import matplotlib.pyplot as plt
fig = plt.figure()
for i in range(len(list_float_sorted)):
for ii in range(1):
plt.plot(float(list_float_sorted[i][ii]),float(list_float_sorted[i][ii+1]),marker=’*’)
plt.xlim(0,math.ceil(float(max(x_list))))
plt.ylim(0,math.ceil(float(max(y_list))))
plt.title(‘Title’,fontsize=15)
plt.xlabel(‘X’,fontsize=10)
plt.ylabel(

元記事を表示

快適な開発環境のつくりかた (Mac)

# A Guide to Comfortable Developments (for Mac)

プログラマを目指す友人のために。
(オンデマンドに加筆・更新を行う可能性があります。)

:::note warn
M1 チップ搭載の Mac の場合は、旧来の Intel チップ搭載の場合と異なる点が出てくる可能性があります。アーキテクチャとして x86-64 と arm の 2 択が出てきた場合は **arm** の方を選択するようにしてください。とはいえ中々に M1 チップも普及し、このことを意識する頻度は低くなってきています。
:::

:::note warn
取り扱うプログラミング言語として汎用性が高いであろう Python と JavaScript を選びました。特に Python はインターネットに出てくる記事に落とし穴が多く、その観点からも環境構築のガイドラインは価値があるものだと考えています。
:::

## TL;DR

“Too long, didn’t read.”(あんまりに長すぎて読まなかったよ)の略語。日本独自の用法として「要約」の意味がある。Qiita で

元記事を表示

Pythonでサーバーを立てて画像を表示する

# はじめに
家のハムスターの様子を外でも見たいので、まずはサーバーを作って画像を表示できるようにしようと思います。

# 環境
windows10
python3.9.4
google chrome

# サーバーの起動
適当なフォルダにindex.htmlとserver.py、表示したい画像を用意します。
“`python:server.py
import http.server
import socketserver

PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer((“”, PORT), Handler) as httpd:
print(“serving at port”, PORT)
httpd.serve_forever()

“`

“`html:index.html


ハムスター

Macを買って最初にやるPython3環境構築

## MacbookでPython3を使うために最初に行う初期設定の紹介

### 環境
“`shell
$ sw_vers
ProductName: macOS
ProductVersion: 11.4
BuildVersion: 20F71
“`

### コマンドラインツールのインストール
macを買って最初にやることはコマンドラインツールを導入すること。
Xcodeの導入を行う。これでターミナルからコマンドを使用することができる。
macOSのデフォルトであるターミナルで以下のコマンド打ち、インストールを始める。

“`shell
$ xcode-select –install
“`

### Homebrewのインストール
Homebrewというbrewコマンドでインストールしたものを管理してくれるパッケージマネージャーをインストールする。

“`shell
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

h

元記事を表示

DeBankのスクリーンショット自動撮影コードを書いてみた

ブロックチェーンベンチャーで暗号資産周辺の会計処理、内部統制の構築に関連する業務を行なっている公認会計士のyuk_tです。

簡単に複数ウォレット内の残高等を確認できるようにDeBankのポートフォリオ管理画面のスクリーンショットを自動で撮影してくれるコードを書きました。
環境構築など気にせず、どなたにも使いやすいように前回同様google colaboratoryで動かすことを想定しています。
GoogleアカウントとGoogle chromeが使える状態であればすぐに動かせます!

## DeBankとは
簡単に言うと、DeBankはウォレットのポートフォリオ管理ツールです。
情報が欲しいウォレットを接続、もしくはアドレスを入力するとウォレット残高やDeFiの使用状況を確認することができる優れものです。
他にもRevokeができたり最近のトランザクションを確認できたりDeFiの統計データが閲覧できたり・・・何かと便利です。

## このコードで出来ること

https://debank.com/

ポートフォリオ管理画面のスクリーンショット撮影を複数アドレス分自動で行ってくれます。

元記事を表示

PythonでUnicode点字のアスキーアートを作ろう!

# PythonでUnicode点字のアスキーアートを作ろう!

## 概要

 この記事は、Pythonから画像処理を行い、Unicodeに含まれる8点点字でアスキーアートを作ろうというものです。具体的にこのようなものを作成します。

tennji_d.png

## はじめに

 ある時何気なくUnicodeの表を眺めていたら点字文字があるのを見つけ、この点字のパターンを利用してアスキーアートを作ったら面白いものが作れそうだと思ったのですが、私は極度のめんどくさがりなので手作業ではなく、プログラムで自動的に作成したいと思い作りました。
 本記事は画像データの処理や加工から、点字生成プログラム、点字への置き換えなど内容盛りだくさんですので長くなって申し訳ないですが参考になれば幸いです。

## 実行環境

元記事を表示

matplotlibで非構造格子(2次元, 三角形分割)のデータを可視化する

## 0. 概要
 この記事では、Pythonの可視化ライブラリであるmatplotlibを使用して2次元で三角形分割された非構造格子上のデータを図示する方法を紹介します。例として単純支持梁の曲げ問題を取り上げると、下の図のように変形後の形状と応力分布を可視化することができます。

beam_stress.png

## 1. はじめに
 流体や構造、電磁界などを対象とした科学技術計算には、有限要素法や有限体積法などの数値解析手法があり、これらの方法では空間の離散化に非構造格子が使用されています。計算において要素ごとに求まる物理量を可視化するには、メッシュを物理量の値に応じた色で塗り分ける必要があります。とくに、構造体では変形後の形状に合わせて応力分布を表示したいのではないでしょうか。
 pythonの可視化ライブ

元記事を表示

Windowsにanaconda & VSCode環境を導入したら、いろいろつまづいたのでメモ

絶対忘れるのでメモ

## Anacondaを公式からインストールする
[こちら](https://www.anaconda.com/products/individual)からダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/3f43bf7a-bd8d-043f-2c8f-4b2284a821a0.png)

インストーラーを起動してインストール

## VSCodeを公式からインストールする
[こちら](https://code.visualstudio.com/download)からダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/95caec71-64e1-4a5a-8217-21314e8ae572.png)

インストーラーを起動してインストール

pythonの拡張機能を追加
![image.png](https://qiita

元記事を表示

pipの厳格な依存関係チェックにハマってしまった時の解決方法備忘録メモ

# 事の起こり

Tensor Flowのアップグレードを実行した時に以下のエラーが発生しました。

>ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.22.2 which is incompatible.

詳細な実行ログ

“`bash
$ pip install -U tensorflow
Requirement already satisfied: tensorflow in /opt/conda/lib/python3.9/site-packages (2.6.2)
Collecting t

元記事を表示

WindowsでNVIDIAのGPUを使ってTensorflowを使う

## 必要なNVIDIAのソフト
– [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit)
– [cuDNN](https://developer.nvidia.com/cudnn)
会員登録必須

## Pythonの環境構築
Pythonを[公式サイト](https://www.python.org/)からインストール
仮想環境を作成するために、PowerShellでプロジェクトのフォルダへ移動して以下のコマンドを実行
“`
py -m venv .venv
“`
以下のコマンドを実行すると仮想環境に入る(プロンプトの前に「(.venv)」が追加されていれば成功)
“`
.\.venv\Scripts\Activate.ps1
“`
仮想環境に必要なライブラリをインストール
“`
py -m pip install tensorflow scikit-learn keras numpy pandas
“`
pythonファイルを実行
“`
python .\sample.py
“`
以下のコマンドを実行す

元記事を表示

Django ユーザ登録・ログイン・ログアウト

# ユーザ登録フォーム

“`python:forms.py
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm

class SignUpForm(UserCreationForm):
class Meta:
model = User
fields = (
‘username’,
‘password1’,
‘password2’,
)
“`

`UserCreationForm`を継承してフォームを作成します。
今回私はユーザ登録にメールアドレスを要求しないことにしたので、`fields`として`’username’`、`’password1’`、`’password2’`(再入力による確認)を設定しています。

“`python:views.py
from django.views.generic import CreateView
from django.urls i

元記事を表示

pythonで画面上の指定した範囲の文字を取得する

## 概要
ちょっと故あって画像から文章を取得する処理が作れないかといろいろ調べてみました。ひとまず形になったのでまとめてみました。
流れとしては以下のようになっています。
1. メインディスプレイのスクリーンショットを取得。
1. 取得したスクリーンショットから取り出したい部分を選択する。
1. 文字列をクリップボードに保存。またテキストファイルとして保存も同時に実施。

それぞれ以下のページを参考にして作成しました。
1. [OCR部分](https://qiita.com/ku_a_i/items/93fdbd75edacb34ec610)
1. [画像を範囲指定で取得する部分](https://qiita.com/8_hisakichi_8/items/47f6d37e6f425f29c8a8)

## Tesseractの導入
[こちら](https://hituji-ws.com/code/python/tesseract-ocr/)を参考にTesseractを導入します。また[OCR部分](https://qiita.com/ku_a_i/items/93fdbd75ed

元記事を表示

k-meansを使ってみたときのメモ

k-meansを使う機会があったので自分なりにまとめてみました。
なんとなーくわかった気になっていたけどいざ使うとなると、気になることがたくさん出てきたので一つずつ調べながらやってみました。

## 参考
本当にありがとうございます。

https://qiita.com/g-k/items/0d5d22a12a4507ecbf11

https://qiita.com/g-k/items/e1d558ffcdc833e6382c

https://pepese.github.io/blog/python-ml-k-means-clustering/

https://qiita.com/deaikei/items/11a10fde5bb47a2cf2c2

https://rightcode.co.jp/blog/information-technology/t-sne-visualizing-high-dimensional-data

## 概要
k-means はデータをランダムにクラスターに分類した後、それぞれのクラスターの重心を元に分類を調整し直していくアルゴリズムで、任意

元記事を表示

ABC241 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

ABC241(AtCoder Beginner Contest 241) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

https://qiita.com/sano192/items/54accd04df62242b70f0

# パナソニック株式会社様について
本コンテストはパナソニック株式会社様がスポンサードされています。
興味のある方は採用情報を確認してください。

https://recruit.jpn.panasonic.com/rd/focus/course01.html

# A – Digit Machine

https://atcoder.jp/contests/abc241/tasks/abc241_a

まずaはリストとして受け取りましょう。
リストに格納した場合、akはa[k]と書くことで値を参照できます。

画面に表示されている数字を「k」としましょう。
(1)最初はk=0です。
(2)ボタンを押すと数字はa[k]になります。よってk=a[k]となります。
(3)またボタンを押すと数

元記事を表示

streamlitを使用したアプリ公開方法

streamlitを使用したアプリ公開方法をメモとして記載する。

vscodeでコードを書き終えたらterminalで以下のように記載。

“`
PS C:\Users\sn112> cd 開きたいファイル名
PS C:\Users\sn112\Python\webapi> git init
Initialized empty Git repository in C:/Users/sn112/Python/webapi/.git/
“`
githubでリポジトリ作成後のURLをorigin以降に記載
“`
PS C:\Users\sn112\Python\webapi> git remote add origin (ex:https://github.com/~)
“`

git add .でwebapi内すべてをコミットの対象にする。
 ※git addと.の間にスペース必要
 ※git add ●●.pyでファイルを指定することも可能。
git commit -m ‘コメント’でコミット

795b131がコミットID,コミットを識別する
“`
PS C:\Users\

元記事を表示

intra-martの勤怠入力を自動化してみた。

私が働いている会社では、intra-martを使って勤務の情報を管理しています。

なので、基本的にはログイン→勤怠一覧→日付クリックで時間入力(あるいはコピー)→保存

といった操作をもって毎日の勤怠を入力します。

約2年ほどそれで勤怠を入力しましたが、最近やや面倒だなと感じるようになりました。ステップ数が多いのです。

なので、自動化することにしました。

https://fumitoblog.com/maked-automation-for-work-start-and-end/

こちらのブログを参考に自動化を試みます。

作ったものがこちらです。

“`workAuto.py
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
#ドロップダウン用
from selenium.webdriver.support.select import Select
#日付
impor

元記事を表示

OTHERカテゴリの最新記事