首頁技術(shù)文章正文

Python是怎樣創(chuàng)建NumPy數(shù)組的?

更新時(shí)間:2021-02-03 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif


創(chuàng)建ndarray對(duì)象的方式有若干種,其中最簡(jiǎn)單的方式就是使用array()函數(shù),在調(diào)用該函數(shù)時(shí)傳入一個(gè)Python現(xiàn)有的類型即可,比如列表、元組。例如,通過array()函數(shù)分別創(chuàng)建一個(gè)一維數(shù)組和二維數(shù)組,具體代碼如下。

In [9]: import numpy as np
In [10]: data1 = np.array([1, 2, 3])               # 創(chuàng)建一個(gè)一維數(shù)組
In [11]: data1
Out[11]: array([1, 2, 3])
In [12]: data2 = np.array([[1, 2, 3], [4, 5, 6]])  # 創(chuàng)建一個(gè)二維數(shù)組
In [13]: data2
Out[13]: 
array([[1, 2, 3],
    [4, 5, 6]])

除了可以使用array()函數(shù)創(chuàng)建ndarray對(duì)象外,還有其他創(chuàng)建數(shù)組的方式,具體分為以下幾種:

(1) 通過zeros()函數(shù)創(chuàng)建元素值都是0的數(shù)組,示例代碼如下。

In [14]: np.zeros((3, 4))
Out[14]: 
array([[0., 0., 0., 0.],
     [0., 0., 0., 0.],
     [0., 0., 0., 0.]])
(2) 通過調(diào)用ones()函數(shù)創(chuàng)建元素值都為1的數(shù)組,示例代碼如下。
In [15]: np.ones((3, 4))
Out[15]: 
array([[1., 1., 1., 1.],
     [1., 1., 1., 1.],
     [1., 1., 1., 1.]])
(3) 通過empty()函數(shù)創(chuàng)建一個(gè)新的數(shù)組,該數(shù)組只分配了內(nèi)存空間,它里面填充的元素都是隨機(jī)的,且數(shù)據(jù)類型默認(rèn)為float64,示例代碼如下。
In [16]: np.empty((5, 2))
Out[16]: 
array([[-2.00000000e+000, -2.00390463e+000],
     [ 2.37663529e-312, 2.56761491e-312],
     [ 8.48798317e-313, 9.33678148e-313],
     [ 8.70018275e-313, 2.12199581e-314],
     [ 0.00000000e+000, 6.95335581e-309]])
(4) 通過arange()函數(shù)可以創(chuàng)建一個(gè)等差數(shù)組,它的功能類似于range(),只不過arange()函數(shù)返回的結(jié)果是數(shù)組,而不是列表,示例代碼如下。
In [17]: np.arange(1, 20, 5)
Out[17]: array([ 1, 6, 11, 16])

大家可能注意到,有些數(shù)組元素的后面會(huì)跟著一個(gè)小數(shù)點(diǎn),而有些元素后面沒有,比如1和1.,產(chǎn)生這種現(xiàn)象,主要是因?yàn)樵氐臄?shù)據(jù)類型不同所導(dǎo)致的。

值得一提的是,在創(chuàng)建ndarray對(duì)象時(shí),我們可以顯式地聲明數(shù)組元素的類型,示例代碼如下。

In [18]: np.array([1, 2, 3, 4], float)
Out[18]: array([1., 2., 3., 4.])
In [19]: np.ones((2, 3), dtype='float64')
Out[19]: 
array([[1., 1., 1.],
[1., 1., 1.]])



猜你喜歡:

什么是Python的進(jìn)程?進(jìn)程組成部分內(nèi)容介紹

Python web開發(fā)框架Zope有什么優(yōu)勢(shì)?

Python中如何將數(shù)組轉(zhuǎn)為Json格式數(shù)據(jù)?

黑馬程序員Python+數(shù)據(jù)分析課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!