2021-01-01から1年間の記事一覧

Python Excelファイル「.xlsx」をシート指定で読み込む「pandas × openpyxl × xlrd」

'22/05/01更新:シート名の一覧を取得する方法を追記しました。 本記事では、下図のようなExcelファイル「.xlsx」をpandasで読み込む雛形コードを載せました。 pandasでエクセルファイル(拡張子「.xlsx」)を読むためには、openpyxlとxlrdをインストールす…

Python 指定文字列を欠損値NaN(float型)へ置換する「pandas×numpy」

'22/05/21更新:全体の要素に対する処理方法に加えて、特定の列に対する処理方法も追記しました。 本記事では、pandasデータフレームに対して、各要素の値が指定した文字列の場合に、欠損値NaN(float型)へ置換する雛形コードを載せました。pandasのmask()…

Python 要素数の和が一定値となる制約の元に、整数の乱数を作成する「numpy」

'22/03/12更新:自然な分布になる雛形コードも追記しました。 本記事では、例えば複数のパラメータA, B, Cの3つがあって、それらの和が一定値Sの制約条件の元に、整数の乱数を作成する雛形コードを載せました。下図は、S=150と指定して2000水準作成した例で…

Python 自動でクラス数を決定してクラスタリングする「x-means」と「g-means」

クラスタリング、クラスター分析と言えば、k-meansが有名です。しかし、予めクラス(分類)数を指定する必要があります。この対策として、分類数を自動で決定するアルゴリズムはいくつか存在していて、「x-means」,「g-means」,「Star Clustering」などがあ…

Python 回帰モデルの作成と多目的最適化によるパレート解の作成「PyCaret×Optuna」

本記事では、PyCaretを用いてベストな回帰モデルを自動で作成する雛形コードと、作成した複数の回帰モデル(バイナリファイル)を利用して、Optunaを用いて多目的最適化を行う雛形コードを載せました。 最終的には、複数の目的変数に対して最小値or最大値を…

Python Y軸の列名を指定して散布図の作成「sns.pairplot」。更にY軸の範囲を設定する

'21/12/17更新:カテゴリの識別を色でなくて、マーカーでする場合の雛形コードを追記しました。 本記事では、下図のような散布図を作成する雛形コードを載せました。seabornのpairplotを用います。 Y軸の列名を指定するには下記のようにします。 y_vars = 'P…

Python 動画をアニメ化する「OpenCV」

本記事では、動画をアニメチックに変換する雛形コードを載せました。動画の返還前後の動画は下記です。 www.youtube.com ■本プログラム import os import cv2 from PIL import Image, ImageFont, ImageDraw import moviepy.editor as mp import numpy as np …

Python 写真をアニメ化する「OpenCV」

本記事では、画像ファイルをアニメっぽく変換する雛形コードを載せました。変換例を4つ、下記のように動画にしました。 www.youtube.com ■本プログラム import os, glob import cv2 import numpy as np def main(): for file_path in file_path_list: # ファ…

Python 行列散布図の作成「seaborn」

'22/02/19更新:図中の上にタイトルを記載するコードを追記しました。 本記事では、下図のような行列散布図を作成して、画像ファイルに保存する雛形コードを載せました。 ちなみに、上図のデータは、機械学習の分類で有名なアイリスデータセットです。seabor…

Python 連番リストを作成する。覚えておくべき7例

'21/09/27更新:連番に0埋め(ゼロパディング)したい場合のコードも追記しました。 昇順、降順、小数点刻みについて、下図のように雛形コードを6例載せました。ループで回す場合や、適当なグラフを描画したい場合などに使えます。 以上 <広告> // リンク

Python 複数のcsvをひとつのExcelファイルへ、各シートにて作成する「openpyxl」

本記事では、雛形コードを載せました。カレントフォルダ以下の全てのサブフォルダを探索し、拡張子「.csv」を検出してファイルパスをリストで取得します。そして、各ファイル名をシート名として、ひとつのエクセルファイル「.xlsx」へ保存します。 下図は、…

Python 図形の境界を検出して、各領域の面積を求める「OpenCV」

本記事では、画像認識により図形の輪郭を検出して、各領域の面積を求める雛形コードを載せました。同時に、各領域の重心座標と輪郭の長さも数値データとしてcsvファイルに保存し、ヒストグラムや累積分布図も作成する仕様です。 各領域の検出と面積を求める…

Python 音声付きの左右反転動画を作る「OpenCV」

本記事では、Pythonで左右反転動画を作成する雛形コードを載せました。 www.youtube.comの 使用するライブラリは3つで、OpenCV, Pillow, MoviePyです。それらのインストールはpipで次のようにします。 pip install opencv-pythonpip install Pillowpip insta…

Python アンパック代入。覚えておくべき3例

アンパック代入とは、リストやタプルなどから複数の変数へ一括で展開して代入することです。本記事では、知っておくと便利な3つの代表例を載せます。 ■例1:アンパック代入する複数変数の内、最後の変数の頭にアスタリスクを付けると 、残りの要素をまとめて…

Python 3Dグラフを回転する。さらに各画像や動画で保存する方法「matplotlib×OpenCV」

本記事では、matplotlibで作成した3Dグラフを回転して表示する方法と、それらを画像(png, jpg)や動画(mp4)で保存する雛形コードを載せました。 ■本プログラムの仕様三次元にプロットするデータは何でも構いませんが、ここでは下表のような4点としました。 x …

Python 学習済みCNN画像分類器を用いて、画像を分類する雛形コード「TensorFlow2」

本記事では、作成した学習器(CNN:畳み込みニューラルネットワーク)を用いて、画像を分類する雛形コードを載せました。 自前の画像ファイル(jpg, png)で分類学習器を作成する雛形コードは、次のリンク先です。hk29.hatenablog.jp 本記事のプログラムを実行…

Python 自前の画像を分類するため、畳み込みニューラルネットワーク(CNN)による学習器の作成「TensorFlow2」

'21/03/23更新: 本記事では、自前の画像を分類する学習器を作成する雛形コードを載せました。kerasを利用したシーケンシャルなコードです。#####tensorflow2.4.1で動作確認しています。tensorflow2系のインストール方法は、Anacondaのverによっては、pip in…

Python 列データを行方向へ連結する「Pandas」

本記事では、pandasを利用して列データを行方向へ連結する雛形コードを載せました。下図左が元データで、列名indexの値0,1,2を各グループとして、列名data1,data2,data3の値を行方向へ結合します。この時、重複する値がある場合はその行を削除して、ソートし…

Python 画像ファイルjpg/pngをsvgへ変換する「OpenCV × svgwrite」

'22/05/01更新:CADで読み込めるsvgを作成する雛形コードを載せました。 画像ファイルjpgやpng等は、ドット(画素)絵でラスタ形式と呼びます。そして、画像ファイルsvg(Scalable Vector Graphics)をベクタ形式と呼び、曲線でも解像度に依らずに滑らかに表…

Python 2値化フィルターによる輪郭の強調。そして座標を抽出する「OpenCV」

'22/07/03更新:グレースケールと輪郭強調だけでは対応できない場合の対策例として、その間の画像加工のコードの記述例を追記しました。・しきい値調整(トライアングル, 大津処理)・ヒストグラム平坦化・白黒反転・パイラテラルフィルタ・ノイズ除去 本記…

Python 「FreeCAD」のAppImageでpython操作する【Linux用】

本記事では、Linux環境下におけるFreeCADのAppImageでpython操作する雛形コードを載せました。(FreeCADのインストール方法は次のリンクに載せています。https://hk29.hatenablog.jp/entry/2020/07/04/122953。そして、本プログラムの動作は次のリンク先のWi…

Python 「FreeCAD」寸法をパラメータにCADファイル(.step)をCUIで自動生成する【Windows用】

#'21/02/13更新 本記事ではpandasを使用しない雛形コードを載せました。この理由は、FreeCAD内のPythonのみを使用することでpythonのver違いの干渉によるエラーを回避するためです(FreeCADのインストール方法は次のリンク先に記載していますhttps://hk29.ha…

Python 複数の画像ファイルを連結して1枚の画像ファイルを作成する「OpenCV, matplotlib, numpy」

'23/11/16更新:図例を見やすいのに差し替えたのとコードの可読性を若干向上しました。 本記事では、Pythonで複数の画像ファイル(jpg, png)を連結して1つの画像ファイルに保存する雛形コードを載せました。下図は、8枚の画像ファイルを3列3行の位置に配置し…

Vim インストールと設定方法「~/.vimrc のサンプル3つ」

'22/07/09更新:ColorSchemeとフォント色の設定についても記載しました。さらに、コピペできるように3つの例を載せました。 本記事の内容は、Linux(Ubuntu 20.04.1 LTS)で動作確認しています。vimのverが古い場合、次のようなエラーが出ます。E319: Sorry,…

Python コマンドラインでzip圧縮。またはzipを展開する

環境変数にPythonのパスが通っていれば、コマンドラインインターフェイス(CLI, CUI)でzip圧縮やzipファイルの展開(解凍)をワンライナー (one liner)で簡単にできます。 ▼zip圧縮する場合例えば、テキストファイル3つ「test1.txt」「test2.txt」「test3.t…

Python C++を活用して速度向上を図る「pybind11」×「CMake」

本記事では、PythonとC++を連携する雛形コードを載せました。具体的には、データを抽出するためのプログラムで、forループとその中にあるif文条件分岐の部分をC++に任せて高速化を図ります。仕組みは、C++でPythonモジュールを作成することでPythonスクリプ…