NumPy之ndarry陣列建立

2022-07-31 22:33:45 字數 3496 閱讀 5456

numpy.empty方法

用來建立乙個指定形狀和型別的陣列,並且未初始化

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

其中shape代表陣列形狀,dtype代表資料型別,order中」c「代表行優先、」f「代表列優先。

#建立空陣列

x=np.empty([3,2],dtype=np.int32,order='c')

print(x)

執行後結果:

[[  7209029   6422625]

[ 6619244 100]

[ 6553673 911867904]]

process finished with exit code 0

numpy.zeros方法

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

建立指定大小的陣列,陣列元素以0來填充。例使用自定義的型別建立zeros陣列:

z=np.zeros((5,),dtype=[('name','i8'),('age','i4')])

print(z)

numpy.ones方法

numpy.ones方法建立乙個指定形狀的陣列,陣列元素以1填充。

numpy.ones(shape,dtype=none,order='c')

numpy.asarray方法

numpy.asarray 類似 numpy.array,但 numpy.asarray 引數只有三個,比 numpy.array 少兩個。

numpy.asarray(a,dtype=none,order='c')

其中dtype、order屬性與array屬性相同,引數a是指 任意形式的輸入引數,可以是列表,列表元組,元組,元組的元組,元組的列表,多維陣列。

如將列表x=[1,3,4]轉化為ndarry:   a=np.asarray(x)

將元組轉化為ndarray:

xa=[(1,3,4),(2,4,2),(1,4,2,5)]

xs=np.asarray(xa)

print(xs)

執行結果:

[(1, 3, 4) (2, 4, 2) (1, 4, 2, 5)]

process finished with exit code 0

numpy.frombuffer

主要用於實現動態陣列,numpy.frombuffer接受buffer輸入引數,以流的形式讀入轉化成ndarray物件。

注意:buffer 是字串的時候,python3 預設 str 是 unicode 型別,所以要轉成 bytestring 在原 str 前加上 b。

numpy.frombuffer(buffer,dtype=float,count=-1,offset=0)

buffer: 可以是任意物件,以流的形式讀入、

dtype: 資料型別

count: 讀取資料的數量,預設為-1,讀取所有的資料

offset: 讀取的起始位置,預設從頭開始度

下面實現一串字元的轉化

# 實現動態陣列 numpy,frombuffer

s=b'hellow'

zs=np.frombuffer(s,dtype='s3');

print(zs)

**中要注意的有兩點:一是python3.x中要轉化成bytestring需要在原str前加上b 二是dtype的型別」sn「中n的值要能夠被bytestring型別字元的長度整除。

執行結果:

[b'hel' b'low']

numpy.fromiter方法

此方法可以從可迭代物件中建立ndarray物件,返回一組陣列

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

iterable: 可迭代物件

dtype:    返回陣列的資料型別

count: 讀取資料的數量

下面使用range列表函式建立列表物件再使用迭代器建立ndarray物件

#使用迭代器建立ndarray

list=range(5)it=iter(list)xt=np.fromiter(it,dtype=float)

print(xt)

執行結果:

[0. 1. 2. 3. 4.]

process finished with exit code 0

numpy.arange函式

numpy包中使用arange函式建立數值範圍並返回ndarray物件,函式格式如下:

numpy.arange(start,stop,step,dtype)

其中 start: 起始值

stop:終止值

step:  步長,預設為1

dtype:  返回ndarray的型別,預設返回輸入資料的型別

如設定乙個起始值、終止值與步長:

#設定起始值 終止值 步長

xc=np.arange(10,20,2)

print(xc)

執行結果:

[10 12 14 16 18]

process finished with exit code 0

numpy.linspace函式

用於建立乙個等差的一維陣列

np.linspace(start,stop,num=50,endpoint=true,rerstep=false,dtype=none)

其中 num:要生成等步長的樣本數量,預設50

endpoint 該值為true時,數列中包含stop值,反之不包含,預設為true

retstep   如果為true時,生成的陣列會顯示間距,反之不顯示

at=np.linspace(1,10,12,endpoint=true ).reshape([2,6])

結果顯示:

[[ 1.          1.81818182  2.63636364  3.45454545  4.27272727  5.09090909]

[ 5.90909091 6.72727273 7.54545455 8.36363636 9.18181818 10. ]]

numpy.logspace函式

用來建立乙個等比數列,格式如下

np.logspace(start,stop,num=50,endpoint=true,base=10.0, dtype=none)

其中base:指對數log的底數

python OpenCV之numpy陣列操作

1.的表示與儲存 以矩陣的形式存在電腦裡,需要用到陣列操作來完成對影象的處理。np.ones size 可以建立任意維度的陣列,各個元素值均為1 23 np.zeros size,dtype 同上,但各個元素值為0.預設元素型別為浮點數使用示例 img np.zeros 256 256,3 np.u...

numpy之陣列運算

陣列之邏輯運算 可以直接對陣列進行邏輯判斷,會返回相應的bool型別陣列 通用判斷函式 三元運算子 陣列之統計運算陣列與數之間的運算 會作用到陣列中的每乙個元素上。陣列與陣列之間的運算 廣播機制 陣列在進行向量化運算時,要求陣列的形狀是相等的。當形狀不相等的陣列執行算術運算的時候,就會出現廣播機制,...

numpy之陣列計算

coding utf 8 import numpy as np import random 陣列和數字計算,進行廣播計算,包括加減乘除 t8 t8 2 print t8,t8.dtype,t8.shape 陣列和陣列計算,只要在某一維度 行或列 一樣,就可以進行廣播計算,包括加減乘除 t9 t5 t...