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

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

nondominated sortを高速に計算する

## はじめに
表題の通り,高速なnondominated sortの計算に必要な関数を作りました.
nondominated sortとは主に多目的最適化においてサンプルの優劣をつけるために利用されるSort方法です.

## 実装
以下の `nondominated_sort` 関数では入力 `costs (shape := (n_points, n_costs))` に対して,`ranks (shape := (n_points, ))` を返します.

“`python
import numpy as np

def is_pareto_front(costs):
on_front_indices = np.arange(costs.shape[0])
(n_points, _) = costs.shape
next_index = 0

while next_index < len(costs): nd_mask = np.any(costs < costs[next_index], axis=1) nd_ma

元記事を表示

AtCoder Beginner Contest 248

# この記事の目的
最近少し競技プログラミングから離れており、エンジニアとしてこれからどのようになっていけば良いかとちょっと悩んでいる時期でもありましたが、心機一転取り合えず技術力向上/何か行動を起こさなければということで`Atcoder`の問題を解くことを再開しようと思います。

とりあえず、練習をたくさん積んでC・D問題を解けるようになりたいと思います。

# [A問題](https://atcoder.jp/contests/abc248/tasks/abc248_a)
この問題は[0-9]の10種類あるうち、1種類だけ出てこない数字があるのでそれを見つけてくださいという内容です。
案としては、
1. 入力を昇順にソートして0から確認していく(ソートで時間かかるけど全探索は済む)
1. [0-9]のリストを作成して入力の先頭から確認していく(ソート処理は必要ないけど全探索しなければいけない)
1. 入力の数字全部足して45-入力の合計をする

考えつくのはこれくらいでした。
3つ目の考え方をコードにすると以下の感じです。他の案より簡潔で良いかもしれません

“`python
n

元記事を表示

Pandasインストールの備忘録

https://www.youtube.com/watch?v=XfoYeWCzjac
こちらの動画を見ながら実際にpandasを使うためにjupyterlabを使用
拡張機能
$ jupyter labextension install @lckr/jupyterlab_variableinspectorを実行したところ
node.jsがインストールされていないためエラー発生。

ならばと
$conda install nodejs.
を実行。
しかし下記のエラーが発生。

PackagesNotFoundError: The following packages are not available from current channels:

調べるとインストールしようとしているチャンネルには該当ライブラリが無いことが原因のよう
参考:https://hitokageblog.com/condalisterror/
なので、https://anaconda.org/conda-forge/nodejs
上記のページから
$conda install -c conda-forge

元記事を表示

Pythonで独立した実行に対して重複しないようにJobを与えたときのメモ

## はじめに

まずは問題設定を記述します.
1. $N$ 個の独立した実行があり,それぞれの実行に対して,Uniqueな config を渡し,それに基づいた実行を独立に処理する
2. SQL alchemyを利用したデータベースに対して,configを渡す毎に対応する行の `run flag` を `True` にする
3. ただし,SQL alchemyに対する `SELECT` クエリと `UPDATE` クエリの間に他の実行が `SELECT` クエリを実行してしまうと2つの実行に対して同一の config が渡されてしまうためこれを何とか避けたい.

より具体的に言うと,以下のデータベースにある `table for config` にある全ての config に対して,ただ一回のみ実行を行う.
その結果を `table for record` に格納する.
また,ある config による実行が行われたかどうかは `table for run status` により管理する.
問題となるのは `table for run status` 確認作業と更新作業の間(つまり,

元記事を表示

CloudWatchLogsで取得したログを加工してEFSに格納するLambda作ってみた

# はじめに
日次でCloudWatchLogsからログを取得し、加工してEFSに格納する独自スクリプトを動かしてた。
だが以下の点でイケてないスクリプトでたちまち処理が失敗していた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/0257c3e3-e6d1-c1f0-f021-c173d2ddf097.png)
図1:既存構成

:::note alert
こんな感じ
・サービス利用増により、ログ量が莫大し処理が追いつかずにMaintenanceWindowsの**上限値5時間**をオーバしてしまう
・古き良き(?)シェル芸でログを加工しておりコードは煩雑化・処理は非効率で処理が行われてる
:::

## 実装方式

上記を解決するにはスクリプトを改修したり、そもそものサーバスペックを上げたりするといった流れになるがログ量は増える一方であったり、この処理のためにスペック上げるのは~~贅沢・贅肉すぎるし~~もったいないという形で以下で実装してみた

![image

元記事を表示

SuperCollider + FoxDot のセットアップ(ubuttu20.04)

# はじめに

今日は音関係のことで、SuperCollider をインストールしたのでメモ。
自分は何をしたいのかわからないが、とりあえず、

– 演奏を録音したい
– 自作自演のピアノ演奏しながら、ドラムとか流したい

というのでまぁ、いじってみるか、ということに。かなり飛躍があるかな。

# インストールした

半日かかりでしたが、できたのでメモ。環境は Linux Ubuntu20.04 (古いVAIO)です。

– SupperCollider
– FoxDot

### FotDot

これはpip でなんの問題もなくインストールされました。

https://foxdot.org/installation/

あとで tkinker がないと言われたので、これも入れました。

“`
$ sudo apt install python3-tk
“`

### SuperCollider

ソースを持ってきて、cmake でbuildするも、いろいろ足りなくて怒られたので、いろいろインストールしたら最終的に動きました。

https://supercollider.git

元記事を表示

【AtCoder解説】PythonでABC248のA,B,C,D,E,F問題を制する!

**ABC248**の**A,B,C,D,E,F問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM

元記事を表示

AWS Cloud9でPython基礎~Amazon S3を利用する

2022/4/6(水)に行われたAWSセミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学習した、AWS Cloud9 から Amazon S3 に Pythonでファイルを読み込み・アップロードする部分の復習。

# 構成図
AWS Cloud9から、 Amazon S3バケット上のテキストを読み込む操作と、テキストをアップロードする操作をPythonで実現する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/a6440a86-5807-63b9-acf4-10269055849e.png)

# 1.S3バケットにあるファイルを読み込む

## 1-1.S3バケットの作成
マネジメントコンソールで S3 画面にいき、「バケットを作成」をクリックする。
バケット名は使用用途がわかる一意の名前を付ける。このバケット名はこの後のPythonコードで使用するため、コピーしてメモしておく。
バケット名以外はデフォルトのまま、「バケットを作成」をクリックする。

元記事を表示

『Python1年生』で勉強中(その2)

## この記事について
『Python1年生』(以下、書籍)でPythonを学習する初心者の記録です。
今回も大したことは書いていませんが、こういうのは習慣的にやるべきだと最近読んだ別の本に書いてあったので、とりあえず書き散らします。

■ バックナンバー
・[『Python1年生』で勉強中(その1)](https://qiita.com/megrim_q/items/c1417f507e96c1fb7015)

## 実行環境
| OS・MW | バージョンなど |
|:-:|:-:|
| OS | Windows 10 Pro 21H2 19044.1645 |
| Python | 3.10.4 |
|IDLE |3.10.4|

## やったこと

引き続き、IDLEに書籍のサンプルプログラムを入力してひたすら試していました。
その他、ときどき思いつきで書き方を変えてみたりなど。

## 気になったところ

### Pythonについて

– 文字列の一部を抜き出す書き方、例えば「w[1:10]」のように書く場合、
「1番目~10番目まで抜き出す」のかと思いきや、「

元記事を表示

【AtCoder】PythonでABC248のA, B, C, D, Eを解く

自分がコンテストでやった考察と実装を書いてみます.

# 目次

* [A問題 『Lacked Number』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#a%E5%95%8F%E9%A1%8C-lacked-number)
* [B問題 『Slimes』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#b%E5%95%8F%E9%A1%8C-slimes)
* [C問題 『Dice Sum』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#c%E5%95%8F%E9%A1%8C-dice-sum)
* [D問題 『Range Count Query』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#d%E5%95%8F%E9%A1%8C-range-count-query)
* [E問題 『K-colinear Line』](https://qiita.com

元記事を表示

Python3 対話モードを終了する方法

# Python3ってターミナルに打ってみた!
~~~shell
python3
~~~
REPLと呼ばれる対話モードが開きますよね
動かしたはいいものの、何をどうすればいいのか分からないし、何より終了したいのにできません
そんなとき、↓のコードを実行してみてください
~~~python3
type(exit)(quit, ‘finish’)()
~~~

# 結論
REPLを終了できました!

# 補足
Python2の人は
~~~python
type(exit)(quit)()
~~~
で十分だった気がします

かしこ

元記事を表示

ABC248での学び

# ABC248で得た学び
今日はA,Bだけ解けて、Cは考えたけど難しそうすぎて飛ばしました。
その後のD問題を後から友達と答え合わせする中で得られた学びを記します。

* 1. ソート済み配列に対するBisectを使ったインデックス取得
D問題では、ソート済みの配列からある数L,Rについて、”L<X<R”を満たすような要素の数を取得する必要がありました。
僕は初め数列内のすべての要素に対してL

元記事を表示

Djangoでwebサービスを作ってみるまで~その1(環境構築編)~

# Djangoでwebサービスを作ってみるまで~その1(環境構築編)~

## なぜ書き始めたか
ただの練習です。Djangoを触れるようになってから早1年、そろそろまとめるように何か記事を書いてみようということで初心者の方やDjangoってそもそもなんすかというような人向けの記事を僕なりにまとめたいと思います。(最終的には色々機能ごとに分けてテンプレ化したい)

ということで早速始めていきましょう

## 今回のテーマ
タイトルにもある通り`Djangoでwebサービスを作ってみるまで~その1(環境構築編)~`です

環境構築しましょう。(この記事を参考にdocker環境を構築しました。→https://qiita.com/bakupen/items/f23ce3d2325b4491a2dd)
今回はdocker上で構築・実装していきたいと思います。なのでdocker上のコンテナでコマンドを実行するような形になっています。

“`
docker-compose run web python3 –version
docker-compose run web python3 man

元記事を表示

AWS LambdaでPython基礎

2022/4/6(水)に行われたAPNパートナー限定セミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学んだLambda部分の復習。

AWS Lambdaと Amazon Translate を使ってテキスト翻訳するアプリケーションを作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/e23bb7ce-521c-da78-714d-d6f9589b28e0.png)

# 1.Lambda 関数を実行する

## 1-1. Lambda 関数の作成

マネジメントコンソールで Lambda を開き「関数の作成」をクリックする。
– 「一から作成」を選択する。
– 関数名:適当な名前を付ける。目的がわかるようにしたいので今回は`translate_lambda`とした。
– ランタイム:python3.9

その他項目はデフォルト値のまま「関数の作成」をクリックする。
![image.png](https://qiita-image-store.

元記事を表示

【python】ezdxfを使ってみよう#1~図面作成と設定編~

# ezdxf~図面作成と設定編~
**ezdxf**というpythonライブラリを使って、**dxfの自動作図**を研究します。
自分のプログラミングノートを兼ねて、シリーズでまとめていきます。
この章ではまず**簡単なdxfデータを作成し、初期設定の確認をします。**
1. **ezdxfのインストール**
1. **自動作図は最短5行!**
1. **エディター内でdxfを即確認できる**
1. **便利なsetupを設定**
1. **setupの中身を確認**

開発環境
windows 10(64bit)
Python 3.8.10
ezdxf 0.17.2

## ezdxfのインストール
“`Python:pip install ezdxf
pip install ezdxf
“`
Excelに記録した座標を読み込んでの作図や、dxfを読み込んでExcelにまとめるなどをするには、openpyxlやpandasなどのライブラリを用いるようになっていきます。
## 自動作図は最短5行!
**線を一本作図した図面を作成します。**(図形の書き方の詳細は別の章でまとめ

元記事を表示

Effective Pythonまとめ 2. List and Dictionaries (Item11~Item18)

Pythonのコーディング力を引き上げるために、[Effective Python Second Edition(英語版)](https://www.amazon.co.jp/dp/B07ZG18BH3/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)を用いて学習しています。
(日本語版は訳が機械的でわかりづらいというレビューが多かったので、英語版を利用することにしました。)
今回は、第二章のList and Dictionaries (Item11~Item18)について、要点をまとめていきます。

:::note warn
個人的に解釈した内容を記述しているため、本の内容と厳密には一致しない表現が含まれる可能性があります。
:::

# Item11: Know How to Slice Sequences

### 基本的なsliceの使い方
Pythonでは、list, str, bytes型などをスライスする際には、`somelist[start:end]`が利用できる。
この際、startに指定したindexに対応する要素は実行

元記事を表示

【Python】1~4次までの地域メッシュコードを計算する

# はじめに

緯度経度から、地域メッシュコードを1~4次まで計算するPythonのPGを作成しました。

# メッシュコードとは
緯度経度を基に四角の区域に分けたものです。交通量分析やPTでメッシュコード単位で分析をしているとよく出てきます。
詳細は下記を参照してください
– [総務省統計局 地域メッシュ統計の特質・沿革](https://www.stat.go.jp/data/mesh/pdf/gaiyo1.pdf)
– [地域メッシュまとめ](https://qiita.com/nkuchiii/items/a3a83d5a2cdd5d8d630c)

# 環境
– python version 3.7.4
– windows10

# 実装
“`python:test.py
# coding: UTF-8
# メッシュコード変換設定用変数
MILLISECOND = 3600000 # 計算の単位(ミリ秒)に変換して計算する

#*************************************************************************

元記事を表示

ImportError: cannot import name ‘xxx’ from partially initialized moduleの対処法

# エラーが出た状況
このエラーが出たのが1つのファイルに色々コードを記述して、だいぶごちゃごちゃしてきたので、複数ファイルに分けようとしていました。
そしたらファイルを複数に分けた後、「ImportError: cannot import name ‘xxx’ from partially initialized module」が出てきやがりました。

# 原因:循環import
このエラーの原因は循環importでした。
循環importとはなんだよという方のために説明いたします。

ファイルA
“`
import ファイルB
“`

ファイルB
“`
import ファイルA
“`

めちゃくちゃ簡潔に書くとこんな感じです。
ファイルAでファイルBをインポート、ファイルBでファイルA。
両方のファイルでファイルを呼び出し合っていることによりこのエラーが発生してあります。

この両方からファイルを呼び出し合っているところを解決してあげるとエラーが消えました?

# 終わりに
初心者エンジニアですので何かありましたらコメントしていただけるとありがたいです!☺️

元記事を表示

自動でvenvを(de)activateする

# Introdaction
Pythonで仮想環境作ったはいいけど毎回activate/deactivateするのが面倒臭い。
自動化させましょう。

## 環境
Python3.3 以降
Ubuntu 20.04

## 特徴

– プロジェクトディレクトリに移動した際に、直下に仮想環境があれば、自動でactivateする
– プロジェクトディレクトリの外へ`cd`する際には自動的にdeactivateする
– 同一プロジェクトディレクトリ内で`cd`してもdeactivateしない
– 仮想環境名は任意に設定できる

※参考にさせていただいたのはこちら[[1−3](#references)]。
こちらのページで示されている方法を実装すればそれで十分だったが、プロジェクトディレクトリ下にあるサブディレクトリに移動してもdeactivateされてしまったり、仮想環境名を固定しなければいけなかったりと、ちょっと自分の使い方では痒所に手が届かなかったので自分好

元記事を表示

CentOS Stream 9 LAMP.sh

vi Cent0S9.sh
“`
#インストール
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf install https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf config-manager –set-enabled remi
dnf -y install xrdp tigervnc-server
systemctl start xrdp.service
systemctl enable xrdp.service
systemctl set-default graphical.target
systemctl status firewalld

#日本語環境インストール
dnf -y install ibus-kk

元記事を表示

OTHERカテゴリの最新記事