NumPy 數(shù)組屬性

    NumPy 數(shù)組屬性說明和實例

NumPy 數(shù)組的維數(shù)稱為秩(rank),即數(shù)組的維度,一維數(shù)組的秩為 1,二維數(shù)組的秩為 2,以此類推。
NumPy中,每一個線性的數(shù)組稱為是一個軸(axis),axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作。
比如說,二維數(shù)組相當于是兩個一維數(shù)組,其中第一個一維數(shù)組中每個元素又是一個一維數(shù)組。
所以一維數(shù)組就是 NumPy 中的軸(axis),第一個軸相當于是底層數(shù)組,第二個軸是底層數(shù)組里的數(shù)組。而軸的數(shù)量——秩,就是數(shù)組的維數(shù)。

NumPy 的數(shù)組中比較重要 ndarray 對象屬性有

numpy 支持的數(shù)據(jù)類型比 Python內(nèi)置數(shù)據(jù)類型要多很多,基本上可以和 C 語言的數(shù)據(jù)類型對應上,其中部分類型對應為 Python 內(nèi)置的類型。下表列舉了常用 NumPy 基本類型。

ndarray.ndim - 秩,即軸的數(shù)量或維度的數(shù)量。ndarray.shape - 數(shù)組的維度,對于矩陣,n 行 m 列。ndarray.size - 數(shù)組元素的總個數(shù),相當于 .shape 中 n*m 的值。ndarray.dtype - ndarray 對象的元素類型。ndarray.itemsize - ndarray 對象中每個元素的大小,以字節(jié)為單位。ndarray.flags - ndarray 對象的內(nèi)存信息。ndarray.real - ndarray元素的實部。ndarray.imag - ndarray 元素的虛部。ndarray.data - 包含實際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性。

1、ndarray.ndim

ndarray.ndim 用于返回數(shù)組的維數(shù),等于秩。

>>> import numpy as np
>>> a = np.arange(24)
>>> print (a.ndim) 
1 # a 現(xiàn)只有一個維度
>>> b = a.reshape(2,4,3)
>>> print (b.ndim)
3 # b 現(xiàn)在擁有三個維度

2、ndarray.shape

ndarray.shape 表示數(shù)組的維度,返回一個元組,這個元組的長度就是維度的數(shù)目,即 ndim 屬性(秩)。比如,一個二維數(shù)組,其維度表示"行數(shù)"和"列數(shù)"。
ndarray.shape 也可以用于調(diào)整數(shù)組大小。

>>> import numpy as np
>>> a = np.array([[1,2,3,4,5,6],[4,5,6,7,8,9]])
>>> print(a.shape)
(2, 6)
>>> a.shape = (6,2)
>>> print(a)
[[1 2]
 [3 4]
 [5 6]
 [4 5]
 [6 7]
 [8 9]]

同時,在NumPy中也提供了 reshape 函數(shù)來調(diào)整數(shù)組大小,具體實例如下:

>>> import numpy as np
>>> a = np.array([[1,2,3,4,5,6],[4,5,6,7,8,9]])
>>> b = a.reshape(6,2)
>>> print(b)
[[1 2]
 [3 4]
 [5 6]
 [4 5]
 [6 7]
 [8 9]]

3、ndarray.size

ndarray.size是數(shù)組中元素的數(shù)量。等于np.prod(a.shape),即數(shù)組尺寸的乘積。
a.size返回一個標準的任意精度Python整數(shù)。對于其他獲得相同值的方法,情況可能并非如此(如建議的方法np.prod(a.shape),該方法返回的一個實例np.int_),并且如果該值在可能溢出固定大小的整數(shù)類型的計算中進一步使用,則可能是相關的。

>>> import numpy as np
>>> x = np.zeros((3, 5, 2), dtype=np.complex128)
>>> x.size
30
>>> np.prod(x.shape)
30

4、ndarray.dtype

>>> import numpy as np
>>> x
array([[0, 1],
       [2, 3]])
>>> x.dtype
dtype('int32')
>>> type(x.dtype)

5、ndarray.itemsize

ndarray.itemsize 以字節(jié)的形式返回數(shù)組中每一個元素的大小。
例如,一個元素類型為 float64 的數(shù)組 itemsiz 屬性值為 8(float64 占用 64 個 bits,每個字節(jié)長度為 8,所以 64/8,占用 8 個字節(jié)),又如,一個元素類型為 complex32 的數(shù)組 item 屬性為 4(32/8)。

>>> import numpy as np
>>> x = np.array([1,2,3,4,5], dtype = np.int8)
>>> print (x.itemsize)
1
>>> y = np.array([1,2,3,4,5], dtype = np.float64)
>>> print (y.itemsize)
8

6、ndarray.flags

ndarray.flags 返回 ndarray 對象的內(nèi)存信息,包含以下屬性:

C_CONTIGUOUS (C) - 數(shù)據(jù)是在一個單一的C風格的連續(xù)段中。F_CONTIGUOUS (F) - 數(shù)據(jù)是在一個單一的Fortran風格的連續(xù)段中。OWNDATA (O) - 數(shù)組擁有它所使用的內(nèi)存或從另一個對象中借用它。WRITEABLE (W) - 數(shù)據(jù)區(qū)域可以被寫入,將該值設置為 False,則數(shù)據(jù)為只讀。ALIGNED (A) - 數(shù)據(jù)和所有元素都適當?shù)貙R到硬件上。UPDATEIFCOPY (U) - 這個數(shù)組是其它數(shù)組的一個副本,當這個數(shù)組被釋放時,原數(shù)組的內(nèi)容將被更新。

>>> import numpy as np
>>> a = np.array([1,2,3,4,5])
>>> print(a.flags)
  C_CONTIGUOUS : True
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

7、ndarray.real和x.imag

>>> import numpy as np
>>> x = np.sqrt([1+0j, 0+1j])
>>> x.real
array([1. , 0.70710678])
>>> x.real.dtype
dtype('float64')
>>> x.imag
array([0. , 0.70710678])
>>> x.imag.dtype
dtype('float64')
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清