Numpy 多維陣列(上)

2021-07-30 02:07:24 字數 2679 閱讀 5320

載入包:from numpy import *

有多種方式:使用 python 列表或元祖,使用 arange, linspace 等函式,從檔案中讀取資料。

v=array([1,2,3,4])

m=array( [ [1,2],[3,4] ] )

type(v):型別檢視,結果為numpy 模組提供的 ndarray 型別

v.shape:通過 ndarray.shape 獲得它的維度屬性

v.size:通過ndarray.size獲取陣列的元素數量

shape(m),size(m):使用 numpy.shape 與 numpy.size 函式獲取對應屬性值

m.dtype:使用 ndarray 的 dtype 屬性獲得陣列元素的型別

numpy.ndarray與list區別:

m = array([[1, 2], [3, 4]], dtype=complex):通過在建立陣列時使用 dtype 關鍵字引數顯示地定義元素型別。dtype 的常用值有:int, float, complex, bool, object 等,大小比如:int64/16, float128, complex128

需要生產大陣列時可以使用函式來生成陣列,最常用的有如下幾個函式:

m

=> array([[ 0.70506801, 0.54618952, 0.31039856],

[ 0.26640475, 0.10358152, 0.73231132],

[ 0.07987128, 0.34462854, 0.91114433]])

m[1]

=> array([ 0.26640475, 0.10358152, 0.73231132])

使用 : 能達到同樣的效果:

m[1,:] # row 1

=> array([ 0.26640475, 0.10358152, 0.73231132])

m[:,1] # column 1

=> array([ 0.54618952, 0.10358152, 0.34462854])

可以利用索引進行賦值:m[1,:] = 0,m[:,2] = -1

a = array([[n+m*10 for n in range(5)] for m in range(5)])

=>array([[ 0, 1, 2, 3, 4],

[10, 11, 12, 13, 14],

[20, 21, 22, 23, 24],

[30, 31, 32, 33, 34],

[40, 41, 42, 43, 44]])

row_indices = [1, 2, 3]

a[row_indices]

=> array([[10, 11, 12,13, 14],

[20, 21, 22, 23, 24],

[30, 31, 32, 33, 34]])

col_indices = [1, 2, -1] # remember, index -1 means the last element

a[row_indices,col_indices]

=> array([11, 22, 34])

可以用索引掩碼:

b = array([n for n in range(5)])

b => array([0, 1, 2, 3, 4])

row_mask = array([true, false, true, false, false])

b[row_mask]

=> array([0, 2])

row_mask = array([1,0,1,0,0], dtype=bool)

b[row_mask]

使用比較操作符生成掩碼:

x = arange(0, 10, 0.5)

x => array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ,

5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])

mask = (5 < x) * (x < 7.5)

mask

=> array([false, false, false, false, false, false, false, false, false,

false, false, true, true, true, true, false, false, false,

false, false], dtype=bool)

x[mask]

=> array([ 5.5, 6. , 6.5, 7. ])

numpy多維陣列

ndarray是一種多維陣列物件 data 1,2,3 4,5,6 arr np.array data,dtype np.int32 print arr print shape arr.shape print arr.ndim 1 2 3 4 5 6 shape 2,3 2np.arange 2,1...

Numpy多維陣列

如果兩個矩陣的大小相同,我們可以使用算術運算子來進行兩個矩陣的計算。numpy將對兩個矩陣的對應位置進行操作處理。當兩個矩陣的大小不同,只有當其中乙個矩陣的維度為1時 例如矩陣只有一列或一行 我們才能在不同大小的矩陣上進行這些算術運算,在這種情況下,numpy將其廣播規則用於該操作 numpy為每個...

NumPy 如何構造多維陣列

start import numpy as np numpy.array object,dtype none,copy true,order k subok false,ndmin 0 a np.array 1,2 3,4 元組轉陣列 a np.array 1,2 3,4 列表轉陣列 numpy.z...