NumPy Ndarray對象

NumPy Ndarray對象的基礎知識

NumPy 最重要的一個特點是其 N 維數(shù)組對象 ndarray,它是一系列同類型數(shù)據(jù)的集合,以 0 下標為開始進行集合中元素的索引。
ndarray 對象是用于存放同類型元素的多維數(shù)組。
ndarray 中的每個元素在內(nèi)存中都有相同存儲大小的區(qū)域。
ndarray 內(nèi)部由以下內(nèi)容組成:

一個指向數(shù)據(jù)(內(nèi)存或內(nèi)存映射文件中的一塊數(shù)據(jù))的指針。數(shù)據(jù)類型或 dtype,描述在數(shù)組中的固定大小值的格子。一個表示數(shù)組形狀(shape)的元組,表示各維度大小的元組。一個跨度元組(stride),其中的整數(shù)指的是為了前進到當前維度下一個元素需要"跨過"的字節(jié)數(shù)。

NumPy的主要對象是同構(gòu)多維數(shù)組。它是一個元素表(通常是數(shù)字),所有類型都相同,由非負整數(shù)元組索引。在NumPy維度中稱為 軸 。

例如,3D空間中的點的坐標[1, 2, 1]具有一個軸。該軸有3個元素,所以我們說它的長度為3.在下面所示的實例中,數(shù)組有2個軸。第一軸的長度為2,第二軸的長度為3。

[[ 1., 0., 0.],
[ 0., 1., 2.]]

NumPy的數(shù)組類被調(diào)用ndarray。這里需要注意的是numpy.array這與標準Python庫類不同array.array,array.array只處理一維數(shù)組并提供較少的功能。ndarray對象有更重要的屬性,具體如下:

ndarray.ndim - 數(shù)組的軸(維度)的個數(shù)。在Python世界中,維度的數(shù)量被稱為rank。ndarray.shape - 數(shù)組的維度。這是一個整數(shù)的元組,表示每個維度中數(shù)組的大小。shape 元組的長度就是rank或維度的個數(shù) ndim。ndarray.size - 數(shù)組元素的總數(shù)。這等于 shape 的元素的乘積。ndarray.dtype - 一個描述數(shù)組中元素類型的對象??梢允褂脴藴实腜ython類型創(chuàng)建或指定dtype。另外NumPy提供它自己的類型。ndarray.itemsize - 數(shù)組中每個元素的字節(jié)大小。例如,元素為 float64 類型的數(shù)組的 itemsize 為8(=64/8)。ndarray.data - 該緩沖區(qū)包含數(shù)組的實際元素。通常,我們不需要使用此屬性,因為我們將使用索引訪問數(shù)組中的元素。

我們來看一個具體的實例

>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
       [ 5, 6, 7, 8, 9],
       [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2
>>> a.dtype.name
'int64'
>>> a.itemsize
8
>>> a.size
15
>>> type(a)

創(chuàng)建一個 ndarray 只需調(diào)用 NumPy 的 array 函數(shù)即可:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
參數(shù)說明:

object - 數(shù)組或嵌套的數(shù)列dtype - 數(shù)組元素的數(shù)據(jù)類型,可選copy - 對象是否需要復制,可選order - 創(chuàng)建數(shù)組的樣式,C為行方向,F(xiàn)為列方向,A為任意方向(默認)subok - 默認返回一個與基類類型一致的數(shù)組ndmin - 指定生成數(shù)組的最小維度

Ndarray 實例

下面我們通過一些實例來更好的理解Ndarray的用法。

1、一維數(shù)組
>>> import numpy as np
>>> a = np.array([1,2,3,4,5])
>>> print (a)
[1 2 3 4 5]
2、多維數(shù)組
>>> import numpy as np
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> print(a)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
3、指定數(shù)組維度
>>> import numpy as np
>>> a = np.array([1,2,3,4,5], ndmin = 3)
>>> print(a)
[[[1 2 3 4 5]]]
4、指定數(shù)組元素類型
>>> import numpy as np
>>> a = np.array([1,2,3,4,5,6], dtype = float32)
>>> print(a)
[1. 2. 3. 4. 5. 6.]
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清