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

Python関連のことを調べてみた2022年07月05日
目次

PypeRでPythonコードとRコードをまとめる方法

(株)日立製作所 研究開発グループ サービスコンピューティング研究部の上野です。

Pythonはさまざまなライブラリが提供されているため、その応用範囲が広い言語です。
一方でRは統計解析に特化した言語であるために応用範囲は限られますが、統計解析処理やビジュアル化に関してはPythonよりシンプルにコードを書くことができます。

Pythonでも統計解析やビジュアル化をサポートするパッケージが配布されているものの、既にあるRコードをPythonに書き換えることは手間ではないでしょうか。

ゆえに、Pythonを介してRを呼び出すPythonパッケージである[PypeR](https://pypi.org/project/PypeR/)を用いることもよくあるケースかと思います。

しかし、分散処理のように複数のインスタンスに処理を分散させるとなると、各インスタンスへ.Rファイルを配布することとなり、配布後のファイルの管理が必要となります。このような場合は、分散させたいRでの処理をPythonコード内に記述して、別々だった.pyファイルと.Rファイルを1つの.pyファイルにまとめ上げて使用

元記事を表示

.docをpdfに変換する

とりあえずのメモ。
.docxをpdf化するライブラリはpythonにあるが、.docは無さそうだったので。
指定したフォルダ内の.docをpdf化したものを同じフォルダ内に生成する。

sofficeコマンドを使用できるようにした後、以下を実行

“`python:doc_to_pdf.py
import os
import glob
import pathlib
import subprocess

path = “/Users/user/Downloads/doc_folder/” #ここでどのフォルダで変換したいか指定
p_temp = pathlib.Path(path)

for i in list(p_temp.glob(‘**/*’)):
dirname = os.path.dirname(i)
root, extention = os.path.splitext(i)
if extention == ‘.doc’:
convert_command = f”soffice –headless –convert-to pdf:

元記事を表示

プライベートのPythonライブラリプロジェクトで使っているもの・工夫している点・検討している点などを徒然とまとめてみる

個人的に趣味(技術的盆栽[^1])で作っていっているPythonライブラリで使っているLintやサービスであったり、工夫している点や今後検討している点などを色々まとめていこうと思います。

https://github.com/simon-ritchie/apysc

※1人でプライベートにちまちまと進めているのでまだまだ理想的ではない部分も多く、その辺は今後検討している点として触れていきます。「この頃はこんな感じになっていた」と個人的に将来振り返る時のためにも使います。

※本記事はQiitaのイベント開始前に少しずつ書き始めていたのですが、GitHub Actionsも絡んでいるのとGitHub Actionsのイベントテーマが設定されていたので折角なのでイベント用のタグを設定させていただいています。

https://qiita.com/official-events/14b94a693d6153857db4

# どんなライブラリなのか

各種説明をスムーズにするために軽く対象ライブラリの内容に触れておきますが、Pythonである程度フロントエンドを書けるようにしたい・・・と思

元記事を表示

露出不足、露出過多、暗すぎる、明るすぎる画像をきれいにする OpenCVってなんやかやすごい

![ダウンロード (59).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/d8d312fc-69ba-c167-a368-1252ad2eed2b.png)
![ダウンロード (58).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/b4701142-5a76-5339-a0df-93597f779999.png)

# 昼間の電気をつけていない室内など、画像内で明るさの差が大きい画像は、一部が明るく写りすぎたり、暗く写りすぎたりして、細部が見にくいことがあります。

# OpenCVで明るさ補正

OpenCVの補正メソッドが使えます。

“`python
from __future__ import print_function
import numpy as np
import argparse
import cv2
def adjust_gamma(image, gamma=1

元記事を表示

Python+Seleniumによるスクレイピングを並列処理で実施する

# 概要
PythonでSeleniumを使って並列処理でwebスクレイピングをする。

# Pythonの並列処理
Pythonで並列処理を実現するライブラリはいくつかある。
`concurrent.futures`がより簡単に並列化を実現できるため今回はこちらを利用する。
– threading
– multiprocessing
– concurrent.futures

Pythonの並列処理については以下がわかりやすい。
https://pystyle.info/python-concurrent-futures/

`concurrent.futures`ではマルチスレッドによる並行処理と、マルチプロセスによる並列処理がある。
マルチスレッドは1つのコアで処理を行う、マルチプロセスは複数のコアで処理を行う。
今回はマルチスレッドを利用する。違いは以下参照。

Pythonで並行処理(並列処理)同時進行プログラム-concurrent.futures

# サンプル
“`Python
#ライブラリをインポート
from selenium import webdriver
from selenium.webdriv

元記事を表示

雀魂の画面から画像認識で対戦情報を持ってくる(Vol. 4)

[≪前の記事](https://qiita.com/xenepic_takku/items/4aa94bece50364002497)

# 前回までのあらすじ
openCVのパターンマッチングを用いて、ブラウザのスクリーンショットから雀魂本体の画像の切り出し、更には麻雀牌の識別に成功した。

# 今回やること
– 牌表画像の修正
– 赤ドラ牌の識別
– 鳴いた牌の識別

でお送りします。

# 本文
## 牌表画像の修正
前回のプログラムをテストしていると何回かうまく牌を認識できないことがあり、それが9pや9mなど、数牌の9に偏っていたんですよね。
萬子は漢字の認識なので分からなくもないけど、なんで9pが?と悩んでいたのですが、牌表画像を修正することでうまく認識できました。
![paiList.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381769/76ae3f42-261f-a683-9ba2-6f65222390bf.png)
お分かり頂けただろうか。
9の隣に少し他の画像の切れ端を追加しまし

元記事を表示

Bash / PowerShell / Pythonの変数の扱い・処理の違いを確認する

### 3つのスクリプト型言語の変数の違いを理解する

+ **Shell** **Script** : Linuxを運用する上では必須
+ **PowerShell** : 主にWindowsで利用。オープンソース化でLinuxやmacOSでも使える
+ **Python** : データ分析やAI/ML系で人気のスクリプト

環境に合わせて3つのスクリプト型言語を使っていると、色々混乱してくるので忘備録を兼ね、まとめてみた。

#### 変数の宣言・定義

“` ShellScript.sh
User:~$ name=’Mash’
User:~$ echo $name
Mash

User:~$ name=Mash
User:~$ echo $name
Mash

User:~$ $name
コマンド ‘Mash’ が見つかりません。
“`
**Shell Script**
+ 変数名と値の間の “=” の両脇にスペースを入れてはダメ
+ 変数の値が文字の時でも、クォーテーションの有る無しに関わらず定義可能
+ 変数 **$name** を展開する

元記事を表示

SQLAlchemy クエリの実行タイミングと中身①

## まとめ(結論だけ知りたい人用)
– SELECT
問答無用で1メソッドにつき1つクエリを発行し実行します。

– INSERT
– autoflushを有効にしている場合
無駄なクエリを抑制して発行・実行してくれます。

– autoflushを無効化し、明示的にflushを使う場合
flush()を実行するタイミングで発行・実行されます。

– UPDATE
– autoflushを有効にしている場合
無駄なクエリを抑制して発行・実行してくれます。

– autoflushを無効化し、明示的にflushを使う場合
flush()を実行するタイミングで発行・実行されます。
***
詳しく知りたい方は記事本文をどうぞ

## 概要
SQLAlchemyで発行されるCRUDに関するクエリの内容と実行タイミングを見ていきます。
この記事ではSELECT/INSERT/UPDATEについて記載します。

## SELECT
下記のコードを実行してみます。
“`python
SessionClass = sessionmaker(engin

元記事を表示

[python] Pandas Dataframe, Seriesの備忘録

以前のNumpyからだいぶ期間が開きましたが、pandas関係の内容についても

# 公式のdocumentation
– [User Guide — pandas 1.4.3 documentation](https://pandas.pydata.org/docs/user_guide/index.html)

# 目次
– 動作環境
– Series、Dataframeの作り方

# 動作環境
|種類 |バージョン |
|:—————|:————–|
|MacBook Air |Monterey12.4. |
|python |3.8.9 |
|jupyter notebook|6.4.10 |
|pandas |1.4.3 |

まずはパッケージのインポートから
“`python:
import pandas as pd
“`
pandasを扱うときはpdが慣例だそう

# Series、Datafra

元記事を表示

【Python】os.path.isfile(path)を使ってファイルの存在をチェック

### os.path.isfile(パス名)[[1]](#参考にしたサイト)
引数で指定したパスが実在するファイルかどうかを判別する関数。
実在しファイルであればTrueを返す。


### ファイルが存在しない場合に新規作成をする

#### ファイルの存在と中身を確認する
~~~unix:【ターミナル操作】ファイルと中身の確認
~ $ ls
test.py names.txt
~ $ cat names.txt
Hakase
~ $
~~~

#### ァイルが存在しない場合に新規作成、既に存在している場合はメッセージの表示
【ターミナル操作】ファイルと中身の確認
~~~python:test.py ファイルが既に存在している場合
# osモジュールのインポート
import os

file_name = “names.txt”
# 『os.path.isfile(file_name)』引数で指定したパスが実在するファイルかどうかを判別する。ファイルが実在する場合Trueを返す。
# if not もしファイルが存在しないとき、ファイルを新

元記事を表示

PythonでIPアドレスを取得する方法

## 1つのIPアドレスのみ活性化している場合

“`python
import socket
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
“`

結果

“`
10.56.126.27
“`

文字列とて返されます。

## 複数のIPアドレスが活性化している場合

“`python
import socket
hostname = socket.gethostname()
hostname, alias_list, ipaddr_list = socket.gethostbyname_ex(hostname)
print(ipaddr_list)
“`

結果

“`
[‘10.56.126.27’, ‘10.202.6.27’, ‘10.156.6.27’]
“`

List型で返されます。

元記事を表示

暗い画像をくっきり強化、しかも高画質対応、しかもかんたん、最新低照度強化モデルSCIをつかう

# 元の画像サイズのまま低照度画像を明るく強化したい
高速に高解像度の画像を明るくできるモデルがあればいいなあ、と。


# SCIが使える
Pythonでかんたんに使える画像強化モデルです。

# 使い方

リポジトリをクローンして、
画像フォルダのパスとトレーニング済みの重みパスを指定して、テストスクリプトを実行するだけです。

“`shell
git clone https://github.com/vis-opt-group/SCI.git
cd SCI
python test.py

元記事を表示

[javascript][python][php]デフォルト(オプション)引数

仕事で身に付けた技術や仕事以外で身に付けた知識を、自分用の備忘録として投稿していきたいと思います。

# 今日の内容
会社で先輩方にしていただいた、Vue.jsで書いたコードのフィードバックで、javascriptのデフォルト引数を使ったので、備忘録として残します。

# 使うことになったきっかけ
空配列を初期値とした変数が、なぜか`Undefined`になってしまっていて、どこで`Undefined`が入ってしまっているのかわからなかったので応急処置として使いました。
(はじめは、`if`分岐で`Undefined`が入っていたときの処理を書いていました。デフォルト引数を使うことで、ネストが減りました)

# 使い方
至ってシンプル。引数に続けて`=デフォルト値`を書くだけ。引数が未定義だったとき、デフォルト値が引数にセットされる。
~~~ javascript:sample_undefined.js
//引数が未定義
function sum(x=0, y=0, z=0){
return x + y + z;
}

sum(); //0
~~~
~~~ javascript:s

元記事を表示

SQLAlchemy modelをvalidateする

## まとめ(結論だけ知りたい人用)
– 単一の値に対してのvalidation
@￰validatesデコレータを利用する

– 複数の値に対してのvalidation
– eventを使う(明示的flush使用)
– バリデーションを行うタイミングが明確
– 無駄なクエリ発行を行いやすい

– eventを使う(autoflush使用)
– バリデーションを行うタイミングが明確ではない
– 無駄なクエリ発行を抑制できる

– session.add()にvalidationを埋め込む
– バリデーションを行うタイミングが明確
– 無駄なクエリ発行を抑制できる
– メタプログラミングチックなので注意が必要

***
具体的なコードを確認したい方は記事本文をどうぞ

## 概要
SQLAlchemyのmodelオブジェクトのattributeに対して、
「必ず0以上である」などの制約を付けたい時があります。
また、2つ以上の値の関係に対しても制約を付けたい場合があります。

今回は「単一の値に対してのv

元記事を表示

AthenaでクエリできるようにGlacierのオブジェクトの復元、コピーを行う

# AthenaでのGlacierオブジェクトの制限

Athenaでは `Amazon S3 Glacier Flexible Retrieval`と`Amazon S3 Glacier Deep Archive`ストレージクラスのオブジェクトに関してはクエリされません。
また、[マニュアル](https://docs.aws.amazon.com/ja_jp/athena/latest/ug/other-notable-limitations.html)にあるように、`Amazon S3 Glacier Flexible Retrieval`と`Amazon S3 Glacier Deep Archive`ストレージクラスのオブジェクトを復元したとしてもデータの参照は行われないので、参照を行うためにはコピーを行い別オブジェクトを作成する必要があります。
これらの処理を実行するPythonスクリプトを作成してみました。

# オブジェクトの復元を行うスクリプト

第1引数にバケット名、第2引数にキー名を指定して実行します。指定したオブジェクトの復元をおこなったら処理が完了します。

元記事を表示

40代プログラミング初心者のエラー箇所の見つけ方

40代からpythonの勉強を始めた初心者です。

プログラムコードを書くよりもエラーコードを調べている時間がほとんどという悲しさ

最初の頃はサンプルコードを入力してるだけでも動かないというポンコツさ

どこが悪いのか。。。そんな感じで途方に暮れる初心者の方は多いかと思います。

そんなわけで私がやっている方法

printをたくさん使ってどこまで動いたか確認

頭のいい人ならきっともっといい方法があるのかもしれませんが、私は独学で誰かに聞ける環境ではない。そのため愚直に処理の間にprint文を入れまくってます

print(“ここから”)
処理1
print(“1個め”)
処理2
print(“2個め”)
処理3
みたいな感じでとにかくどこでエラーを吐いているか確認します。

エラーメッセージにLine 11とか行数書いてあるけどね。

でもどこまで正しく動いているか確認するのにprintで確認すると簡単なんですよ

変数に何が入っているかもprintで確認

変数に思ったものが入っているか、変なものが入っているかもしれない。っこう言うチェックも大事ですよね。

<

元記事を表示

【Pythonでコード難読化】PyArmorドキュメント(翻訳)

Pythonコードの難読化を行うためPyArmorを使用するにあたりもろもろの調査を行うため、内部用にドキュメント(PyArmor7.5)の翻訳をしました。

試用版を使って動かしてみる際は、[インストールとアンインストール](#2インストールとアンインストール)及び[PyArmorの使用](#3pyarmorの使用)を参照すると良いかと思います。

PyArmorで難読化した際に問題が発生したら、まずドキュメントの [When Things Go Wrong(うまくいかないとき)](#16うまくいかないとき)を参照すると解決に役に立ちます。

PyArmorの内部処理を知りたい場合は、[PyArmorの仕組み](#10pyarmorの仕組み)を参照することをお勧めします。

目的に応じて各章を参照ください。

+ まずはインストールして試してみたい
[2.インストールとアンインストール](#2インストールとアンインストール) 及び [3.PyArmorの使用](#3pyarmorの使用)
+ ちょと高度なテクニックを知りたい
[4.アドバンストピックス](#4アドバンストピックス)

元記事を表示

Pythonの標準ライブラリ一覧

| \_\_future__ | \_\_main__ | _thread | abc | aifc | argparse | array |
|:—————-|:————|:———-|:———–|:————-|:————-|:———–|
| ast | asynchat | asyncio | asyncore | atexit | audioop | base64 |
| bdb | binascii | binhex | bisect | builtins | bz2 | calendar |
| cgi | cgitb | chunk | cmath | cmd | code |

元記事を表示

【Python✗Webスクレイピング】プロ野球選手データをもとにHR数を予測する

# はじめに

2022年プロ野球が開幕して早3ヶ月。
シーズン日程も折り返しましたが、
みなさま、贔屓球団の調子はいかがでしょうか?

新体制に希望を抱いて迎えた我が贔屓球団は
**セ・リーグ最下位**です!!!(2022/7/4現在)

そんな貧打に喘ぐ中日ドラゴンズの
「ホームラン数予測」をやってみました。

プロ野球ファン歴は19年ですが、機械学習経験は4ヶ月の初心者ですので、
どうか温かい目でご覧いただけると幸いでございます。

また、気になる点がありましたら、
ご指摘いただけると明日への励みになりますので、
ぜひコメントお待ちしております!

【データ】

[プロ野球データFreak様のサイト](https://baseball-data.com/21/stats/hitter-all/hr-1.html)

【ゴール】

「2021年のプロ野球選手データを使って、中日ドラゴンズの選手のホームラン数を予測する」

【タスク】

・中日ドラゴンズ以外

元記事を表示

椎名林檎に「自由」とは何か聞いてみた!

#目次
[1. はじめに](#1-はじめに)
[2. どうやって質問するか](#2-どうやって質問するか)
[3. 手法](#3-手法)
[4. 歌詞データの収集](#4-歌詞データの収集)
[5. データの前処理](#5-データの前処理)
[6. 形態素解析](#6-形態素解析)
[7. モデル実装による学習](#7-モデル実装による学習)
[8. 結果](#8-結果)
[9. 終わりに](#9-終わりに)
[10. 参考元](#10-参考元)

#1. はじめに

みなさんは「自由」とは、なんだと思いますか?
こういう質問を投げかけると恐らく、人の数だけの答えが返ってくるでしょう。
そこで今回は、私の好きなアーティストの椎名林檎さんにも同じ質問をしてみました。

#2. どうやって質問するか

とは言っても本人に直接聞くことは、どんなコネを使っても不可能です:sweat_smile:
ならば、椎名林檎さんが生み出す楽曲の歌詞にそのヒントがあるのではないか? ということで
Pythonを用いて類似度解析をやってみたいと思います!

#3. 手法

python
スクレイピング

元記事を表示

OTHERカテゴリの最新記事