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

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

社内コードを公開せずに内部で共有する方法

# はじめに

見つけやすく、インストールしやすいソフトウェアパッケージは、開発者にとって使いやすいです。[React](https://reactjs.org/)、[Ruby on Rails](https://rubyonrails.org/)、[Airflow](https://qiita.com/hankehly/items/1f02a34740276d1b8f0f) のような有名な OSS は良い事例です。しかし、社内の非公開のコードは、企業秘密として**世間から隠されることが多いです**。権限を持っている人のみ見ることができて、オープンソースのように `npm` `gem` や `pip` で簡単にインストールすることもできません。

その結果、社内のコードがうまく再利用されなくなる(あるいはできなくなる)ことがあります。各チームはそれぞれ独立したコードベースを持ち、他のチームにコードを共有したくても、満足がいく解決策を導き出すことが難しかったりします。戦略を立てないままでは、それぞれの独立したコードベースを充実させ続け「社内共通のライブラリー」が遠い夢のようになっていきま

元記事を表示

【計算結果が正しくない!?】案外知らない、計算誤差の話

# はじめまして
63歳ですが、プログラム書いてます。
30年以上昔に知った話を、最近、また耳にしましたので、ちょっとご紹介させていただきます。

# 実数計算が正しいか、9種類の言語で試しました。
今回試したのは、linux 標準の bc(計算機)、PHP、python3、ruby、perl、node.js、C++、go、fortran95 の9つの言語です。
C++ のコンパイルは “`gcc ru88.c -lm -o ru88.out“`、“`gcc ru88-boost.cpp -lstdc++ -o ru88-boost.out“`、
fortran95 のコンパイルは “`gfortran -O3 -o ru88.exe ru88.f95“`、
“`gfortran -O3 fmsave.o fm.o fmzm90.o fm_interval.o fm_doubleint.o fm_quadint.o fm_quadreal.o fm_rational.o -o ru88-FM.exe ru88-FM.f95“`、
go は “`go run ru88.

元記事を表示

スクレイピングで画像を集めてみよう

## 注意
– **スクレイピングはまだ法律が決まっていないグレーな部分なのでするときは細心の注意を払いましょう。**
– **今回は多分セーフ。**
– **やるときは法律を確認して、自己責任でお願いします。**

## はじめに
僕はすぐ記憶が無くなるので記事を書くことにしました。
あくまでも備忘録として書くので、**「わかりにくい」** とかは受け付けません。
今回はROLANDさんの画像で機械学習をしたかったのでスクレイピングをします。

## なぜスクレイピングなのか
「画像を集めるならbingのAPIでええやん」という人もいると思いますが。

**「金がかかる」**

この一言に尽きます。bingのAPIは最初は金がかからないのですが、30日経つと金がかかるようになるので、今後も使いまわすことを考えるとスクレイピングになりました。

## 今回、ぶち当たった課題
**課題**:検索画面から一つ一つ画像を取り出そうとすると、画像の表示数が限定されているので無限には取れない。
**解決**:画像の詳細ページから次の詳細ページに移ることで無限に取れる。

**課題**:次のページ

元記事を表示

numpy配列からn番目に小さい値まで取得

結構よく出会うシチュエーションですがいつもどうするか迷うのでメモします.timeitで時間を測りましたが参考程度です.

## 環境
Ubuntu 20.04 on win
numpy 1.21.6

## 準備
適当な配列を用意する.
“`py
np.random.seed(0)
a = np.random.randn(1000, 100, 100)
“`

## argsort

配列が小さければこれ.丸ごとソートするので無駄が多いのと,配列が大きいと終わらない.

“`py
n = 1000
idx = np.unravel_index( np.argsort(a=a, axis=None), a.shape)
a_minima = a[idx][:n]
“`
timeit出力

“`
3.47 s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
“`

## forループ+argmin

原始的な方法.nが小さくないと使えない.

“`py
n = 1000
a_minima = []
fo

元記事を表示

numpyでargsortの逆操作を行う配列を (sort1回のみで) 簡潔に得る

表題のとおりです.

以下のように行うとsortは一回で済み,for文を使う必要もないです.

“`python
import numpy as np

# 配列を定義
size = 1 << 20 x = np.random.random(size) # sortを行う order = np.argsort(x) # 逆操作を得る (以下2行) order_inv = np.zeros_like(order) order_inv[order] = np.arange(size) # 検証 np.allclose(x, x[order][order_inv]) >>> True
“`

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのfor文の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのfor文の比較

# Python

https://qiita.com/Morio/items/e8aed85346c0055beea7

# Ruby

https://qiita.com/Morio/items/3ac5cac9ace7e9ddbdb4

# PHP

https://qiita.com/miriwo/items/d1b5d5ece4f16c7b5985

# Java

https://qiita.com/Co_Pilot/items/7c59410cd90be4cf06d8

# JavaScript

https://qiita.com/w-tdon/items/f3ecb29dc9350f2f2e8d

# Perl

https://perlzemi.com/blog/20080327120662

元記事を表示

【pytest】 フィクスチャーの定義へジャンプするスクリプト

## フィクスチャーはどこで定義しているのか

pytest の**フィクスチャー**(fixture)を使うと、テスト データ などがツリー状に整理されるようになりますが、それにも関わらずどこで定義されているかを見付けることは非常に難しいです。 Visual Studio Code などの IDE が定義へのジャンプに対応していれば難しくはないのですが、2022年現在は対応していません。 その機能を持った Visual Studio Code の拡張機能があるようですが、まともに動作しません。

そこで、フィクスチャーがどこにあるかを検索する簡単な Linux 用 bash スクリプトを作りました。 これを使えば、テスト関数が使うフィクスチャーの内容がすぐに分かるようになります。

## そもそも pytest のフィクスチャーとは

Python の テスト スイート の 1つである pytest が用意しているフィクスチャーとは、そもそも何でしょうか。 公式の説明を見てみましょう。

https://docs.pytest.org/en/latest/explanation/f

元記事を表示

素数p=x+y (x,yともに1以上)とすると gcd(x,y)=1 らしい

# gcd(x,y)=1 の図を作る

まず、試しに以下の方法

“`python:gifビットマップ用512×512
from math import gcd # python 3.5 以上

width = 512
bitmap = [int(gcd(x, y) == 1)
for y in range(1, 1 + width)
for x in range(1, 1 + width)]
“`

で得た情報から画像を作ります(白は $gcd(x,y)\ne 1$、青は $gcd(x,y)=1$ のドット)
![sample-1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226677/5200cb0f-9ab1-5f30-b8bb-7ba7e33555c2.gif)
$x$ 方向は右で、$y$ 方向は下、画像の座標は左上が $(1, 1)$ です。また、$gcd(x,y)=gcd(y,x)$ で対称です。

# 左下方向から右上方向への途切れない斜め

元記事を表示

VSCodeリモートコンテナでFlask環境を簡単に構築する方法

# 1. 目的
この記事の目的は、VSCodeのリモートコンテナでFlask環境を構築し、楽に開発を行えるようにすることです。

# 2. 事前準備
必要な事前準備は以下のようになります。

## 2-1. VSCodeと拡張機能のインストール
以下のページを参考に、VSCodeと拡張機能をインストールしてください。

https://code.visualstudio.com

必要な拡張機能
* [Remote – Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)

## 2-2. Docker Desktopのインストール
以下のページを参考にDocker Desktopをインストールしてください。

* [Macの方](https://docs.docker.com/desktop/install/mac-install/)
* [Windowsの方](https://docs.docker.com/desktop/install

元記事を表示

boston / iris の練習問題を供養する。

## 初めに
どうも、python歴6カ月で今年中に転職を夢見る者です。
以前からディープラーニング等の練習でbostonやirisのデータを扱い学習していたのですが、忘備録兼倉庫代わりにこの場を借りてシェア致します。
私の以前学習した内容が他の誰かの為になるならば何よりです。

## 本編
– [iris分類問題。](https://github.com/Ken-huea/Time-series-analysis/blob/main/%E3%82%B1%E3%83%A9%E3%82%B9%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%B9%E5%88%86%E9%A1%9E%E5%95%8F%E9%A1%8C_my_best.ipynb) 私自身が行ったものです。

– [iris分類問題。](https://github.com/Ken-huea/Time-series-analysis/blob/main/%E5%85%88%E7%94%9F%E3%81%AEiris%E5%88%86%E9%A1%9E.ipynb) 他の方の高精度なものをコピペして解釈した

元記事を表示

Ubuntu 22.4 Flask 環境構築 

![スクリーンショット 2022-06-16 145821.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200760/a2a23705-cbdb-d24f-1388-78c1ff5c803e.png)

![スクリーンショット 2022-06-16 145914.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200760/28242a3e-bee1-9261-5cfc-ec1f54ccdfc7.png)

![スクリーンショット 2022-06-16 150038.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200760/24035a94-9c8b-0ecf-3510-763211114405.png)

![スクリーンショット 2022-06-16 150216.png](https://qiita-image-store.s

元記事を表示

pythonで統計学(平均、母比率の区間推定)

# 統計学をpythonにやってもらおう#2

## 初めに

前回は、正規分布とt分布をpythonで表現する方法を解説しましたが、今回は区間推定について扱っていきます。[前回の記事](https://qiita.com/Charlesmiwakuno/items/e20cfaaf7e43d481cae5)
特に平均を中心に区間推定を行っていきます。

– 目次
  1,区間推定とは
  2,母分散が既知の場合の母平均の区間推定
  3,母分散が未知の場合の母平均の区間推定
  4,母比率の区間推定

## 1,区間推定とは

区間推定とは、『真の値θが区間[L,U]に入る確率が(1-α)以上になるように保証する』という推定方法です。
簡単に言うと、真の値を1点で求める点推定とは反対に、真の値をある区間内(信頼区間)にいるという推定をするということです。
図のpは母比率ですが真の値と考えてもらって大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2637560/8af3171

元記事を表示

高本彩花と松本潤を機械学習で判別してみた!

# はじめに
去年の2月、「日向坂で会いましょう」で日向坂46のメンバーが男装して、朗読劇をするというバレンタイン企画が放送されました。番組を観てて思ったのが、日向坂46のメンバーの「おたけ」こと高本彩花ちゃんの男装が、嵐のメンバーの「松潤」こと松本潤さんにそっくりであるということです。役名は「ジュンヤ」していました(笑)。
![test4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2810794/c00bda96-3d93-0fd9-e23f-fdf7bb97db5f.jpeg)
そこで今回は、「高本彩花と松本潤を機械学習で判別してみた!」と題して、画像分類問題にチャレンジしてみました。

# 概要
今回は以下の手順で画像分類問題に取り組みました。
* 画像収集
* データの加工
* モデルの実装
* 結果の確認

**環境:JupyterNotebook, macOS Monterey (version 12.4.1)**

# 画像収集
[こちらの記事](https://atmarkit.it

元記事を表示

Python初心者、天和シミュレーターを作成する。

タイトルの通り、Python初心者の自分が天和シミュレーターを作成してみました。麻雀に詳しくない方も、設計上の工夫や制作上の小話など楽しんで読んで頂けると嬉しいです。
# 導入 ~悪魔の囁き~
みなさん麻雀は好きですか?はい、好きですね。よかったです。
僕も麻雀が好きです。麻雀に初めて触れたのは去年ですが、この半年ほどで~~時にマウスやスマホを投げつつも~~雀魂段位戦を約700半荘打っています。
そんな麻雀が好きな僕とみなさんですが、もう一つ質問です。

**天和を和了ったことはありますか?**

はい、ありませんね。僕もありません(そもそも天和の経験があるならこんなシミュレーターなど作らない)。

麻雀に詳しくない方に説明すると、天和とは「**局の開始時、親に配られた14枚の牌が既に和了形になっている時に発生する役満**」です。その発生確率は33万分の1と言われ、映像に残っているものはこの1回しかありません。↓一応リンクです。

ですが麻雀というゲームに触れてしまった以上、天和を和了ることは誰もが

元記事を表示

近年の本格ミステリを可視化する【テキストマイニング】

## はじめに
本記事では、Pythonによるテキストマイニングの簡単なチュートリアルとして、ここ8年ほどの間に刊行された「本格ミステリ」に分類される小説のキーワードを解析し、可視化することを目指します。

## 使用するデータ
[出版書誌情報データベース(Books)](https://www.books.or.jp/)において、検索キーワードを「本格ミステリ」に設定し、ヒットした書誌の内容紹介からあらすじに相当する部分をExcelに手作業で(!)切り貼りすることで、本格推理小説505作のあらすじをまとめました。

![スクリーンショット 2022-09-11 15.47.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1940763/74bdf0d6-251f-deaf-2f48-69659c9315ff.png)

## 実装
あらすじから内容を象徴するようなキーワードを抽出し、その出現の頻度や関係を可視化することで分析を行います。なお、添付したコードはGoogle Colaboratoryで

元記事を表示

Django NameError: name ‘os’ is not defined の解決&解説

## 本記事で話すこと
– “NameError: name ‘os’ is not defined“の解決方法とその解説
– ここで出てくるosって何?について

## NameError: name ‘os’ is not definedの解決方法
結論:ログを見てエラーが発生しているファイルの最上部に“import os“を追記する

※ちなみに自分がこのエラーに遭遇した場面は“python manage.py runserver“を行ったときです。

## どうしてこれで解決するのか
エラー内容は“NameError: name ‘os’ is not defined“
つまり、呼び出している箇所でosが定義されていないのが問題ということは分かります。

次に理解すべきは「os」とは何かということ。

ここで出てくる「os」とは「osモジュール」のことです。
osモジュールについては以下引用を参考にしてください。

>osモジュールとは、OS(オペレーティングシステム)に依存する機能をPythonで扱えるように提供されたモジュールです。

https://te

元記事を表示

ABC268をPythonで

# 0 はじめに
## 0-1 記事について
AtCoder Beginner Contest 268の解説です。
Pythonで書きます。
公式な解説とは異なる場合がありますがご了承下さい。
ミス等ございましたらコメント欄よりお知らせ頂ければ幸いです。

# 1 ABC268 解説
## 1-1 個人的な感想
今回は珍しくDが水Diffと、高難易度でした。
Diffは、AとBが灰前半、Cが茶後半、Dが水前半、掛け離れてEFが青後半といった感じです。
私は三冠でしたが、なんとBでFAを取ることが出来ました!!:wink::smirk:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520428/93561910-d155-02ee-3b8e-b5f12ba2c79f.png)
独り佇んでいる緑コーダーが私です。
爆速三冠(8分半)したのでDiffは緑と水の間くらいで、Ratingは+3でした。
まあ満足といった感じです。
Dは通したかったですが…

## 1-2 A問題 Five

元記事を表示

「世にも奇妙な物語」風タイトルメーカーを作ってみた

プログラミングをこれまで一切したことがない文系大学生です。文学部ではないです。

夏休みの自由研究ということで7日間Pythonを独学して、**「世にも奇妙な物語」風タイトルメーカー** を作ってみました。
あまりに無謀です。そしてきっかけは


→これをやりたいだけです。

コードはとにかく汚いと思います。行き当たりばったりで作ったのでラベリングもその場しのぎです。
もう疲れたので細かい説明は特にありません。記事もコード内の添え書きも表記揺れも酔うほどすごいです。常体と形体の区別もひどい。
記事

元記事を表示

未経験日大文系卒が学ぶ自然言語処理

## 初めに
どうも、python歴6カ月で、今年中に転職を夢見る者です。
ここ1~2週間当たり、自然言語処理を中心として学習しておりました。
その成果物を共有し、私と同じ境遇の他の方々の少しでも助けになればと思います。
モットーは「俺でも分かるなら誰でも分かる」です。
一般人向けの参考書やサイトを見て挫折した私ですが、出来る限り丁寧にまとめたつもりではあります。

### 環境
windows11 colab

## 実装
### 難易度★☆☆☆
[自然言語処理①](https://github.com/Ken-huea/Language-processing/blob/main/%E2%91%A0%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86%E5%9F%BA%E6%9C%AC.ipynb) ⇒ 自然言語処理の最初の一歩。外観をなんとなく

[自然言語処理②](https://github.com/Ken-huea/Language-processing/blob/main/%E2%91%A1%E8%87%AA%E7

元記事を表示

WSLを入れたWinに`pyenv-win`を入れると、WSLの`pyenv`が使えなくなったので

Pyenv 狂信者なので。

## 問題

– WSLに `pyenv` を入れていた
– Windows で直接 python がやりたくなって、Windows (PowerShell) に `pyenv-win` を入れた
– WSL起動時に以下が出るようになって `pyenv` が使えなくなった

“`shell
/mnt/c/Users/foobar/.pyenv/pyenv-win/bin/pyenv: 3: cygpath: not found
/mnt/c/Users/foobar/.pyenv/pyenv-win/bin/pyenv: 3: exec: cmd: not found
“`

## 詳しく状況を調べてみる

– WSLで、`where` で `pyenv` がどこを指しているか確認
“`shell
➜ ~ which pyenv
/mnt/c/Users/foobar/.pyenv/pyenv-win/bin/pyenv
“`
– 本当は `/home/foobar/.pyenv/bin/pyenv` とかを指していてほしいのに `pyenv-

元記事を表示

OTHERカテゴリの最新記事