W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有幾種方法可以創(chuàng)建數(shù)組。
例如,可以使用array
函數(shù)從常規(guī) Python 列表或元組創(chuàng)建數(shù)組。結(jié)果數(shù)組的類(lèi)型是從序列中元素的類(lèi)型推導(dǎo)出來(lái)的。
>>> import numpy as np
>>> a = np.array([2, 3, 4])
>>> a
array([2, 3, 4])
>>> a.dtype
dtype('int64')
>>> b = np.array([1.2, 3.5, 5.1])
>>> b.dtype
dtype('float64')
一個(gè)常見(jiàn)的錯(cuò)誤在于array
使用多個(gè)參數(shù)調(diào)用,而不是提供單個(gè)序列作為參數(shù)。
>>> a = np.array(1, 2, 3, 4) # WRONG
Traceback (most recent call last):
...
TypeError: array() takes from 1 to 2 positional arguments but 4 were given
>>> a = np.array([1, 2, 3, 4]) # RIGHT
array
?將序列的序列轉(zhuǎn)換為二維數(shù)組,將序列的序列的序列轉(zhuǎn)換為三維數(shù)組,依此類(lèi)推。
>>> b = np.array([(1.5, 2, 3), (4, 5, 6)])
>>> b
array([[1.5, 2. , 3. ],
[4. , 5. , 6. ]])
數(shù)組的類(lèi)型也可以在創(chuàng)建時(shí)顯式指定:
>>> c = np.array([[1, 2], [3, 4]], dtype=complex)
>>> c
array([[1.+0.j, 2.+0.j],
[3.+0.j, 4.+0.j]])
通常,數(shù)組的元素最初是未知的,但其大小是已知的。因此,NumPy 提供了幾個(gè)函數(shù)來(lái)創(chuàng)建具有初始占位符內(nèi)容的數(shù)組。這些最大限度地減少了增長(zhǎng)陣列的必要性,這是一項(xiàng)昂貴的操作。
該函數(shù)zeros
創(chuàng)建一個(gè)全零數(shù)組,該函數(shù)?ones
創(chuàng)建一個(gè)全1數(shù)組,該函數(shù)empty
?創(chuàng)建一個(gè)初始內(nèi)容隨機(jī)且取決于內(nèi)存狀態(tài)的數(shù)組。默認(rèn)情況下,創(chuàng)建的數(shù)組的 dtype 是?float64
,但可以通過(guò)關(guān)鍵字參數(shù)指定dtype
。
>>> np.zeros((3, 4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
>>> np.ones((2, 3, 4), dtype=np.int16)
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]], dtype=int16)
>>> np.empty((2, 3))
array([[3.73603959e-262, 6.02658058e-154, 6.55490914e-260], # may vary
[5.30498948e-313, 3.14673309e-307, 1.00000000e+000]])
為了創(chuàng)建數(shù)字序列,NumPy 提供了arange
類(lèi)似于 Python 內(nèi)置的函數(shù)range
,但返回一個(gè)數(shù)組。
>>> np.arange(10, 30, 5)
array([10, 15, 20, 25])
>>> np.arange(0, 2, 0.3) # it accepts float arguments
array([0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
當(dāng)arange
與浮點(diǎn)參數(shù)一起使用時(shí),由于浮點(diǎn)精度有限,通常無(wú)法預(yù)測(cè)獲得的元素?cái)?shù)量。出于這個(gè)原因,通常最好使用linspace
接收我們想要的元素?cái)?shù)量作為參數(shù)的函數(shù),而不是步驟:
>>> from numpy import pi
>>> np.linspace(0, 2, 9) # 9 numbers from 0 to 2
array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
>>> x = np.linspace(0, 2 * pi, 100) # useful to evaluate function at lots of points
>>> f = np.sin(x)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: