[PYTHON] Verwendung von numpy.vectorize

Überblick

Ich bin süchtig danach, die Vektorisierungsfunktion des Python-Berechnungsmoduls numpy zu verwenden, also ein Memo für mich Übrigens habe ich diesmal diesen Artikel am Beispiel der Erstellung eines Histogramms des Eingabebildes in der Bildverarbeitung veröffentlicht.

Zweck von numpy.vectorize

Vectorize ist eine Funktion, die eine Python-Funktion so transformiert, dass eine Liste in eine Liste eingefügt werden kann, die einen Wert als Argument verwendet. Jeder Wert des Eingabearrays wird als Argument berechnet und der Rückgabewert wird vektorisiert.

Verwendung von numpy.vectorize

Bereiten Sie zunächst eine Funktion vor, deren Rückgabewert keine Liste ist.

myfunc.py


def myfunc(a,b):
      return a+b

print myfunc("hoge","Hoge")

Die Ausgabe sieht folgendermaßen aus:

"hogeHoge"

Betrachten Sie das Eintauchen eines Vektors in diese Myfunc.

myfunc.py


def myfunc(a,b):
      return a+b

list = ["hoge","fuga"]

print myfunc(list,"Hoge")

Ich möchte, dass die Ausgabe folgendermaßen aussieht:

["hogeHoge","fugaHoge"]

Aber in der Realität

TypeError: can only concatenate list (not "str") to list

Wird sein. Dies liegt daran, dass ursprünglich nicht definiert wurde, eine Liste als Argument zu verwenden. Sie können die erwartete Ausgabe jedoch erhalten, indem Sie myfunc mit numpy.vectorize vektorisieren.

vfunc=numpy.vectorize(myfunc)
print vfunc(list,"Hoge")

Die Ausgabe ist

["hogeHoge","fugaHoge"]

Die Liste wird zurückgegeben. Nun ist die Vektorisierung der Funktion erreicht.

Praktisches Beispiel

Ich werde ein praktischeres Beispiel hinterlassen. Erstellen Sie eine Funktion, die durch Bildverarbeitung ein Histogramm des Eingabebilds erstellt.

import numpy as np
import cv2
from matplotlib import pyplot as plt

#Funktion zum Erstellen eines Histogramms
def img_hist(src,bins_array):
        x = np.where(src==bins_array,1,0)
        count = np.count_nonzero(x)
        return count
#Vektorisierung
vhist = np.vectorize(img_hist)
vhist.excluded.add(0) #Das 0. Argument wird als fester Vektor an die Funktion übergeben

#Bereiten Sie eine Quelldatei und einen Bin des Histogramms vor
src = cv2.imread("origin/LENNA.pgm",flags=0)
bins_array = np.arange(256)

#Erstellen Sie ein Histogramm
hist_array=vhist(src,bins_array)

#Visualisieren Sie das Histogramm
plt.plot(bins_array,hist_array)
plt.show()

Das Eingabebild ist ein klassisches

Als Ergebnis wird das folgende Histogramm erhalten.

Zusammenfassung

Recommended Posts

Verwendung von numpy.vectorize
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Verwendung von Qt Designer
Verwendung der Suche sortiert
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verstehen Sie, wie man Django-Filter verwendet
[Python] Verwendung von Liste 1
Verwendung von FastAPI ③ OpenAPI
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie man Pandas Rolling benutzt
[Hinweis] Verwendung von virtualenv
Verwendung von Redispy-Wörterbüchern
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
[Go] Verwendung von "... (3 Perioden)"
So bedienen Sie GeoIp2 von Django
[Python] Verwendung von input ()
Wie benutzt man den Dekorateur?
[Einführung] Verwendung von open3d
Wie benutzt man Python Lambda?
So verwenden Sie Jupyter Notebook
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
So verwenden Sie Google Colaboratory
Verwendung von Python-Bytes
Verwendung von cron (persönliches Memo)
Python: So verwenden Sie Async mit