python陣列初始化 python怎麼初始化陣列

2021-10-11 02:02:18 字數 3397 閱讀 3277

因為畫圖中x軸與y軸的資料通常為陣列格式的資料,所以先總結一下如何初始化陣列:

(1)list得到陣列# 通過array函式傳遞list物件

l = [1, 2, 3, 4, 5, 6]

a = np.array(l)# 若傳遞的是多層巢狀的list,將建立多維陣列

b = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])# 可以通過dtype引數在建立時指定元素型別

d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.float)

# 如果更改元素型別,可以使用astype安全的轉換

f = d.astype(np.int)

(2)使用arange# 和python的range類似,arange同樣不包括終值;但arange可以生成浮點型別,而range只能是整數型別

# 1為開始值,10為終止值(不包括),0.5為步長

a = np.arange(1, 10, 0.5)

(3)使用ones、zeros、empty# np.ones(shape, dtype),生成元素全為1(預設浮點型)的陣列

# shape可以為乙個整數得到乙個一維陣列,也可以為(整數1,整數2)的格式得到二維陣列,同理可得多維陣列

a = np.ones((3, 3), dtype=np.int32)

print("a: \n", a)

# np.zeros(shape, dtype),生成元素全為0(預設浮點型)的陣列

# 用法與np.noes()一樣

b = np.zeros((3, 3), dtype=np.int32)

print("b: \n", b)

# np.empty(shape, dtype),生成元素為隨機數(預設浮點型)的陣列

# 用法與np.ones()一樣

c = np.empty((3, 4), dtype=np.int32)

print("c: \n", c)

# np.ones()、np.zeros()、np.empty()都具有如下形式複製乙個結構一樣的陣列,但資料型別可選擇

np.ones_like(array, dtype=)

np.zeros_like(array, dtype=)

np.empty_like(array, dtype=)

(4)等差數列# linspace函式通過指定起始值、終止值和元素個數來建立等差陣列,元素之間是等步長的

# endpoint表示是否包括終止值,預設為true

b = np.linspace(1, 10, 10,endpoint=true)

(5)等比數列# 指定起始值、終止值、元素個數和基數來建立等比數列

# base表示基數,下式建立了乙個1到4之間的有10個數的等比數列

d = np.logspace(1, 2, 10, endpoint=true, base=2)

# 基數為10,下式建立了乙個10到100之間的有10個數的等比數列

d = np.logspace(1, 2, 10, endpoint=true, base=10)

(6)隨機數

rand()# 返回乙個服從「0~1」均勻分布的隨機數,該隨機數在[0, 1)內,也可以返回乙個由服從「0~1」均勻分布的隨機數組成的陣列。

# np.random.rand(d0, d1, …, dn)

# 返回乙個隨機值,隨機值在[0, 1)內

in[15]: np.random.rand()

out[15]: 0.9027797355532956

# 返回乙個3x3的陣列,陣列元素在[0, 1)內

in[16]:np.random.rand(3,3)

out[16]:

array([[ 0.47507608, 0.64225621, 0.9926529 ],

[ 0.95028412, 0.18413813, 0.91879723],

[ 0.89995217, 0.42356103, 0.81312942]])

in[17]: np.random.rand(3,3,3)

# 返回乙個3x3x3的陣列

out[17]:

array([[[ 0.30295904, 0.76346848, 0.33125168],

[ 0.77845927, 0.75020602, 0.84670385],

[ 0.2329741 , 0.65962263, 0.93239286]],

[[ 0.24575304, 0.9019242 , 0.62390674],

[ 0.43663215, 0.93187574, 0.75302239],

[ 0.62658734, 0.01582182, 0.66478944]],

[[ 0.22152418, 0.51664503, 0.41196781],

[ 0.47723318, 0.19248885, 0.29699868],

[ 0.11664651, 0.66718804, 0.39836448]]])

randn()# 產生標準正態分佈隨機數或隨機數組,用法與rand(d0, d1, …, dn)方法一樣

np.random.randn(d0, d1, …, dn)

randint()# 可以生成隨機數,也可以生成多維隨機數組

# np.random.randint(low, high=none, size=none, dtype=)

# [0,4)之間的隨機數

in[7]: np.random.randint(4)

out[7]: 1

# [0,4)之間的一維陣列

in[8]: np.random.randint(4,size=4)

out[8]: array([2, 2, 2, 0])

# [4,10)之間的一維陣列

in[9]: np.random.randint(4,10,size=6)

out[9]: array([7, 9, 7, 8, 6, 9])

# [4,10)之間的2x2陣列

np.random.randint(4,10,size=(2,2),dtype='int32')

out[10]:

array([[7, 4],[6, 9]])

uniform()# 產生[low, high)之間的均勻分布隨機數或隨機數組,low預設為0.0,high預設為1.0

np.random.uniform(low=0.0, high=1.0, size=none)

normal()# 產生均值為loc,方差為scale的服從正太分布的隨機數或隨機數組,loc預設為0,scale預設為1

np.random.normal(loc=0.0, scale=1.0, size=none)

陣列初始化

cpp中陣列初始化方法 簡單的初始化 利用定義變數時賦初值進行初始化。int a 10 float f 10 char ch 5 大括號中的為初始值。較為複雜的初始化 利用memset函式初始化。memset函式用法 void memset void s,int c,size t n 將已開闢記憶體...

陣列初始化

flydream flydream c cat x.cpp include using namespace std int main int argc,char argv flydream flydream c flydream flydream c g g wall x.cpp x.cpp in ...

陣列初始化

一 定義陣列 type arrayname 注 1 陣列定義 c語言宣告 時,不能指定陣列長度。2 定義只是在stack中指定了乙個引用變數,heap中未分配記憶體,所以要在初始化後才能使用。二 陣列初始化 1 靜態初始化 arrayname new type 或 arraynane 注 開發中習慣...