5 NumPy 陣列屬性

2021-09-29 09:06:28 字數 2680 閱讀 2438

本章節我們將來了解 numpy 陣列的一些基本屬性。

numpy 陣列的維數稱為秩(rank),一維陣列的秩為 1,二維陣列的秩為 2,以此類推。

在 numpy中,每乙個線性的陣列稱為是乙個軸(axis),也就是維度(dimensions)。比如說,二維陣列相當於是兩個一維陣列,其中第乙個一維陣列中每個元素又是乙個一維陣列。所以一維陣列就是 numpy 中的軸(axis),第乙個軸相當於是底層陣列,第二個軸是底層陣列裡的陣列。而軸的數量——秩,就是陣列的維數。

很多時候可以宣告 axis。axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作。

numpy 的陣列中比較重要 ndarray 物件屬性有:

屬性說明

ndarray.ndim

秩,即軸的數量或維度的數量

ndarray.shape

陣列的維度,對於矩陣,n 行 m 列

ndarray.size

陣列元素的總個數,相當於 .shape 中 n*m 的值

ndarray.dtype

ndarray 物件的元素型別

ndarray.itemsize

ndarray 物件中每個元素的大小,以位元組為單位

ndarray.flags

ndarray 物件的記憶體資訊

ndarray.real

ndarray元素的實部

ndarray.imag

ndarray 元素的虛部

ndarray.data

包含實際陣列元素的緩衝區,由於一般通過陣列的索引獲取元素,所以通常不需要使用這個屬性。

ndarray.ndim 用於返回陣列的維數,等於秩。

import numpy as np a = np.arange(24) print (a.ndim) # a 現只有乙個維度 # 現在調整其大小 b = a.reshape(2,4,3) # b 現在擁有三個維度 print (b.ndim)

輸出結果為:

1

3

ndarray.shape 表示陣列的維度,返回乙個元組,這個元組的長度就是維度的數目,即 ndim 屬性(秩)。比如,乙個二維陣列,其維度表示"行數"和"列數"。

ndarray.shape 也可以用於調整陣列大小。

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

輸出結果為:

(2, 3)
調整陣列大小。

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

輸出結果為:

[[1 2]

[3 4]

[5 6]]

numpy 也提供了 reshape 函式來調整陣列大小。

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

輸出結果為:

[[1, 2] 

[3, 4]

[5, 6]]

ndarray.itemsize 以位元組的形式返回陣列中每乙個元素的大小。

例如,乙個元素型別為 float64 的陣列 itemsiz 屬性值為 8(float64 占用 64 個 bits,每個位元組長度為 8,所以 64/8,占用 8 個位元組),又如,乙個元素型別為 complex32 的陣列 item 屬性為 4(32/8)。

import numpy as np # 陣列的 dtype 為 int8(乙個位元組) x = np.array([1,2,3,4,5], dtype = np.int8) print (x.itemsize) # 陣列的 dtype 現在為 float64(八個位元組) y = np.array([1,2,3,4,5], dtype = np.float64) print (y.itemsize)

輸出結果為:

1

8

ndarray.flags 返回 ndarray 物件的記憶體資訊,包含以下屬性:

屬性描述

c_contiguous (c)

資料是在乙個單一的c風格的連續段中

f_contiguous (f)

資料是在乙個單一的fortran風格的連續段中

owndata (o)

陣列擁有它所使用的記憶體或從另乙個物件中借用它

writeable (w)

資料區域可以被寫入,將該值設定為 false,則資料為唯讀

aligned (a)

資料和所有元素都適當地對齊到硬體上

updateifcopy (u)

這個陣列是其它陣列的乙個副本,當這個陣列被釋放時,原陣列的內容將被更新

import numpy as np x = np.array([1,2,3,4,5]) print (x.flags)

輸出結果為:

c_contiguous : true

f_contiguous : true

owndata : true

writeable : true

aligned : true

writebackifcopy : false

updateifcopy : false

AI學習之路(5) NumPy是什麼

在前面我們測試過乙個例子,這個例子不知道你是否還記得它的內容,如果沒有記得也沒有關係,現在到我們去研究這個例子的時候了,它的前兩行是這樣寫的 import tensorflow as tf import numpy as np 如果你的python還是不懂,強烈建議先學習一下 課程,這樣會跟上我們的...

NumPy 陣列屬性

我們將討論 numpy 的多種陣列屬性。這一陣列屬性返回乙個包含陣列維度的元組,它也可以用於調整陣列大小。示例 1 import numpy as np a np.array 1,2,3 4,5,6 print a.shape 輸出如下 2,3 示例 2 這會調整陣列大小 import numpy ...

NumPy 陣列屬性

摘自菜鳥教程 本章節我們將來了解 numpy 陣列的一些基本屬性。numpy 陣列的維數稱為秩 rank 一維陣列的秩為 1,二維陣列的秩為 2,以此類推。在 numpy中,每乙個線性的陣列稱為是乙個軸 axis 也就是維度 dimensions 比如說,二維陣列相當於是兩個一維陣列,其中第乙個一維...