English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NumPy 创建数组

Ein ndarray-Array kann nicht nur durch den niedrigeren ndarray-Constructor erstellt werden, sondern auch durch die folgenden Methoden:

numpy.empty

Die Methode numpy.empty wird verwendet, um ein Array mit der angegebenen Form (shape), Datenart (dtype) und nicht initialisierten Einträgen zu erstellen:

numpy.empty(shape, dtype = float, order = 'C')

Es gibt ein neues Array mit der gegebenen Form und Typen zurück, ohne Einträge zu initialisieren.

Parameter

Prototyp - Form der leeren Matrix.dtype(optional) - Output-Datentyp des Arrays, z.B. numpy.int8.64.order(optional, Standardwert: 'C') - Es gibt zwei Optionen "C" und "F", die für Zeilen- und Spalten bevorzugte Reihenfolge in der Speicherreihenfolge der Elemente im Computer speicher darstellen.

Rückgabewert: Ein Array mit der Form des gegebenen Arrays, aber ohne initialisierte Daten (beliebige Art und Weise)

>>> import numpy as np
>>> np.empty([2, 2)
array([[1, 0.],
       [0., 1.]])
>>> np.empty([2, 2], dtype=int)
array([[4607182418800017408, 0],
       [ 0, 4607182418800017408])
>>>
Hinweis:Beachtung − Die Array-Elemente sind zufällige Werte, da sie nicht initialisiert wurden.

numpy.empty_like

numpy.empty gibt eine neue Array mit der gleichen Form und Typen wie der gegebene Array zurück.

numpy.empty_like(prototype, dtype=None, order='K', subok=True, shape=None)

Gibt ein neues Array mit der gleichen Form und Typ wie das gegebene Array zurück

Parameter

Prototyp - Die Form und der Datentyp der Quellmatrix definieren diese gleichen Eigenschaften des zurückgegebenen Arrays.dtype - Überschreibt den Datentyp des Ergebnisses.order - Überschreibt das Speicherlayout des Ergebnisses. Wenn prototypeFortran kontinuierlich ist, dann bedeutet ''A'' ''F'', anderenfalls ''C''. ''K'' bedeutet, dass das Layout des Prototyps so weit wie möglich übereinstimmt.subok - Wenn True, wird der neu erstellte Array mit dem Subtyp von 'a' verwendet, andernfalls ist es ein Basistyp-Array. Standard ist True.shape - Überschreibt die Form des Ergebnisses. Wenn order = 'K' und die Anzahl der Größen unverändert bleibt, wird versucht, die Reihenfolge zu beibehalten, anderenfalls wird order = 'C' angenommen.

Rückgabewert: Neues Array mit der Form und Typ des Prototyps, das nicht initialisiert (beliebig) ist.

>>> import numpy as np
>>> a = ([1,2,3], [4,5,6']) # a ist Array-like
>>> np.empty_like(a)
array([[ 6917529027641081856, -6917520256071729910, 98],
       [ ''', 0, ''', 0, ''', 0]])
>>> a = np.array([1., 2., 3.], [4.,5.,6.]])
>>> np.empty_like(a)
array([[ 2.68156159e+154, 2.68156159e+154, 3.32479618e+181],
       [ 1.78476163e+185, -1.73059781e-077, 4.21535080e-309])

numpy.zeros

Erstellt ein Array der angegebenen Größe und füllt die Elemente mit Nullen:

numpy.zeros(shape, dtype = float, order = 'C')

Parameter

shape - Form der leeren Matrix.dtype - Output-Datentyp des Arrays, z.B. numpy.int8.64.order - ''{'C', 'F'}'', optional, default: ''C'', speichert Daten in Speicher in Zeilen- (C) oder Spalten- (Fortran)Art.

Rückgabewert: Nullvektorenarray mit der Form, Datentyp und Reihenfolge der gegebenen Matrix.

>>> import numpy as np
>>> np.zeros(5)
array([0.0, ''', 0.0, ''', 0.0, ''', 0.0, '''])
>>> np.zeros(5,), dtype=int)
array([0, ''', 0, ''', 0, ''', 0, '''])
>>> np.zeros(2, 1))
array([[0.]])
       [0.]]
>>> s = (2,2)
>>> np.zeros(2dtype=[('x', ''i'')]4,)4'''), ('y', ''i'')
array([(0, '''), (0, ''')], dtype=[('x', ''<i'')])'' # benutzerdefinierter dtype4''),=""''y'',=""''

numpy.zeros_like

zeros_like gibt eine Nullmasse mit der gleichen Form und Typ wie die gegebene Matrix zurück.

numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)[Quelle]

Parameter

a - Eine Eigenschaft, die die Form und den Datentyp des zurückgegebenen Arrays begrenzt.dtype - Das vom Array benötigte Ausgabedatentyp.order - Überdeckt die Speicheranordnung des Ergebnisses.subok - Wenn True, wird der neu erstellte Array mit dem Subtyp von 'a' verwendet, andernfalls ist es ein Basistyp-Array. Standard ist True.shapeint - Überdeckt die Form des Ergebnisses.

Rückgabewerte: Ein Array mit der gleichen Form und dem gleichen Typ von Nullen.

>>> import numpy as np
>>> x = np.arange(6)
>>> x = x.reshape((2, 3))
>>> print(x)
[[0 1 2]
 [3 4 5]]
>>> np.zeros_like(x)
array([[0, 0, 0],
       [0, 0, 0]]
>>> y = np.arange(3, dtype=float)
>>> y
array([0., 1., 2.])
>>> np.zeros_like(y)
array([0., 0., 0.])

numpy.ones

Erstellen Sie ein Array mit der angegebenen Form, wobei die Arrayelemente mit 1 um zu füllen:

numpy.ones(shape, dtype=None, order='C')

Parameter

shape - Arrayformdtype - Datentyp, optionalorder - 'C' wird für Zeilenarrays von C verwendet oder 'F' für Spaltenarrays von FORTRAN.

>>> import numpy as np
>>> np.ones(5)
array([1., 1., 1., 1., 1.])
>>> np.ones(5,), dtype=int)
array([1, 1, 1, 1, 1)
>>> np.ones(2, 1))
array([[1.],
       [1.]])
>>> s = (2,2)
>>> np.ones(s)
array([[1., 1.],
       [1., 1.]])

numpy.ones_like

zeros_like gibt ein Array zurück, das die gleiche Form und den gleichen Typ wie das gegebene Array hat.

numpy.ones_like(a, dtype=None, order='K', subok=True, shape=None)

Parameter

a - Eine Eigenschaft, die die Form und den Datentyp des zurückgegebenen Arrays begrenzt.dtype - Das vom Array benötigte Ausgabedatentyp.order - Überdeckt die Speicheranordnung des Ergebnisses.subok - Wenn True, wird der neu erstellte Array mit dem Subtyp von 'a' verwendet, andernfalls ist es ein Basistyp-Array. Standard ist True.shape - Überdeckt die Form des Ergebnisses.

Rückgabewerte: Ein Array mit der gleichen Form und dem gleichen Typ von Nullen.

>>> import numpy as np
>>> x = np.arange(6)
>>> x = x.reshape((2, 3))
>>> x
array([[0, 1, 2],
       [3, 4, 5])
>>> np.ones_like(x)
array([[1, 1, 1],
       [1, 1, 1])
>>> y = np.arange(3, dtype=float)
>>> y
array([0., 1., 2.])
>>> np.ones_like(y)
array([1., 1., 1.])

numpy.arange

numpy.arange([start,] stop, [step,] dtype=None)

Rückgabewerte: Die Werte im angegebenen Intervall sind gleichmäßig verteilt.
Werte innerhalb des halboffenen Intervalls (d.h. Intervalle, die start enthalten, aber stop nicht) generieren. Für ganzzahlige Parameter ist diese Funktion äquivalent zur eingebauten range-Funktion in Python, aber sie gibt einen ndarray zurück anstatt einer Liste. [start, stop)

Parameter

start - Der Anfang des Intervalls. Das Intervall beinhaltet den Wert. Der Standardwert für den Start ist 0.stop - Der Intervallende. Dieses Intervall beinhaltet den Wert nicht, es sei denn, in einigen Fällen ist step kein Integer, und die Fließkomma-Arundung beeinflusst die Länge von out.step - The spacing between values. For any output, this is the distance between two adjacent values. The default step size is1.dtype - The type of the output array.

Return value: an array of evenly spaced values.

>>> import numpy as np
>>> np.arange(3)
array([0., 1, 2)
>>> np.arange(3.0)
array([0., 1., 2.])
>>> np.arange(3,7)
array([3, 4, 5, 6)
>>> np.arange(3,7,2)
array([3, 5)

numpy.linspace

The numpy.linspace function is used to create a one-dimensional array, which is an arithmetic sequence in the following format:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

Parameter

start - The starting value of the sequence.stop - The terminating value of the sequence. If endpoint is true, this value is included in the sequence.num - The number of samples to generate with equal steps, the default is50.endpoint - If this value is true, the stop value is included in the sequence, otherwise it is not included, the default is True.retstep - If True, the spacing will be displayed in the generated array, otherwise it will not be displayed.dtype - ndarray's data type.

The following example uses three parameters to set the starting point to 1 ,终止点为 10,数列个数为 10.

>>> import numpy as np
>>> a = np.linspace(1,10,10)
>>> print(a)
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
>>> a = np.linspace(10, 20, 5, endpoint =  False)
>>> print(a)
[10. 12. 14. 16. 18.]
>>> a =np.linspace(1,10,10,retstep= True)
>>> print(a)
(array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10).reshape([ 1.0)
>>> b =np.linspace(1,10,10).reshape([10,1)
>>> print(b)
[[ 1.]
 [ 2.]
 [ 3.]
 [ 4.]
 [ 5.]
 [ 6.]
 [ 7.]
 [ 8.]
 [ 9.]
 [10.]]

numpy.asarray

Directly converts Python's basic data types (such as lists, tuples, etc.) to generate ndarray:

>>> import numpy as np
>>> ls1 = [10, 42, 0, -17, 30]
>>> nd1 =np.array(ls1)
>>> print(nd1)
[ 10 42 0 -17 30]
>>>
>>> print(type(nd1))

numpy.asarraySimilar numpy.arrayHowever, the numpy.asarray parameter has only three, which is two less than numpy.array.

numpy.asarray(a, dtype = None, order = None)

Parameter

a - Any form of input parameter, which can be a list, a tuple of a list, a tuple, a tuple of a tuple, a list of tuples, or a multidimensional array.dtype - Data type, optional.order - The number of samples to generate with equal steps, the default is50.endpoint - Optional, there are two options "C" and "F", which represent row-major and column-major order, respectively, of the storage order of elements in computer memory.

>>> import numpy as np
>>> x = [1,2,3]
>>> a = np.asarray(x)
>>> a
array([1, 2, 3)
>>> x = (1,2,3)
>>> a = np.asarray(x)
>>> print(a)
[1 2 3]
>>> x = [(1,2,3),(4,5)]
>>> a = np.asarray(x)
>>> print(a)
[(1, 2, 3) (4, 5)]
>>> x = [1,2,3]
>>> a = np.asarray(x, dtype=float)
>>> print(a)
[1. 2. 3.]

numpy.frombuffer

numpy.frombuffer wird zur Implementierung dynamischer Arrays verwendet.
numpy.frombuffer akzeptiert den buffer-Inputparameter und liest ihn in Form eines Streams ein, um ihn in ein ndarray-Objekt zu konvertieren.

numpy.frombuffer(buffer, dtype=float, count= -1, offset = 0)
Hinweis:Wenn buffer ein String ist, beachten Sie, dass Python3 Standardmäßig ist str Unicode-Typ, daher muss er in einen bytestring umgewandelt werden, indem b vor dem str hinzugefügt wird.

Parameter

buffer - kann jeder Objekttyp sein, der in Form eines Streams gelesen wird.dtype - Rückgabe des Datentyps des Arrays, optionalcount - Anzahl der gelesenen Daten, Standardwert-1Daten lesen. Alle Daten werden gelesen.offset - Startposition der gelesenen Daten, Standardwert 0.

>>> import numpy as np
>>> s = b'Hello w3codebox'
>>> a = np.frombuffer(s, dtype='S1)
>>> print(a)
[b'H' b'e' b'l' b'l' b'o' b' ' b'L' b'i' b'd' b'i' b'h' b'u' b'o']

numpy.fromiter

Die Methode numpy.fromiter erstellt ein ndarray-Objekt aus einem iterablen Objekt und gibt ein ein dimensionales Array zurück.

numpy.fromiter(iterable, dtype, count=-1)

Parameter

iterable - Iterierbare Objekte.dtype - Rückgabe des Datentyps des Arrayscount - Anzahl der gelesenen Daten, Standardwert-1Daten lesen. Alle Daten werden gelesen.

>>> import numpy as np
>>> # Erstellen eines Listenobjekts mit der range-Funktion
>>> list=range(5)
>>> it=iter(list)
>>> x=np.fromiter(it, dtype=float)
>>> print(x)
[0. 1. 2. 3. 4.]

Array mit dem random-Modul generieren

Um Modelle effizienter zu trainieren und ihre Leistung zu verbessern, müssen einige Initialisierungen bestimmte Bedingungen erfüllen, wie z.B. eine Normalverteilung oder eine gleichmäßige Verteilung. Hier werden einige der in der np.random-Bibliothek häufig verwendeten Methoden vorgestellt, wie im folgenden Tisch gezeigt.

FunktionBeschreibung
np.random.random生成0到1之间的随机数
np.random.uniform生成均勻分布的随机数
np.random.randn生成标准正态的随机数
np.random.randint生成随机的整数
np.random.normal生成正态分布
np.random.shuffle随机打乱顺序
np.random.seed设置随机数种子
random_sample生成随机的浮点数
>>> import numpy as np
>>> # 生成全是 0 的 3x3 矩阵
>>> nd5 =np.zeros([3, 3)
>>> print("nd5 =\n", nd5)
nd5 =
 [[0. 0. 0.]]
 [0. 0. 0.]
 [0. 0. 0.]]
>>> # 生成全是 1 的 3x3 矩阵
>>> nd6 = np.ones([3, 3)
>>> print("nd6 =\n", nd6)
nd6 =
 [[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
>>>
>>> # 生成 4 阶的单位矩阵
>>> nd7 = np.eye(4)
>>> print("nd7 =\n", nd7)
nd7 =
 [[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
>>> # 生成 4 阶对角矩阵
>>> nd8 = np.diag([1, 8, 3, 10)
>>> print("nd8 =\n", nd8)
nd8 =
 [[ 1 0 0 0]
 [ 0 8 0 0]
 [ 0 0 3 0]
 [ 0 0 0 10]]