简介
ndarray
顾名思义,是一个用来存储多维数组的数据结构。
底层ndarray构造函数
现在,用ndarray
创建一个(2, 3)
二维数组,并命名为a
。可以看到,a
是一个数组,包含2个元素;每个元素分别又是一个数组,包含3个float
。请注意,float
元素的值是随机的,因为没有指定。
>>> a = np.ndarray(shape=(2, 3), dtype=float)
>>> a
array([[ 6.91857857e-310, 6.91857857e-310, 4.78249221e-317],
[ 1.08552349e-316, 1.08552230e-316, 1.08552112e-316]])
接下来,我们可以用下标访问数组a
,取出子数组。数组a
维数为2,子数组维数则为1。
>>> a[0]
array([ 6.91857857e-310, 6.91857857e-310, 4.78249221e-317])
>>> a[1]
array([ 1.08552349e-316, 1.08552230e-316, 1.08552112e-316])
第二维只包含2个元素,因此当下标超出合法范围时,访问将报错。请注意,错误类型为IndexError
。
>>> a[2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: index 2 is out of bounds for axis 0 with size 2
同样地,通过下标可以访问子数组的元素,即取出浮点数。
>>> a[0][0]
6.9185785704028074e-310
高层接口
在ndarray
基础上,numpy
提供了若干个高层构造函数,包括zeros
、empty
等。
现在,使用zeros
创建一个(2, 3, 4)
三维数组。注意到,所有的值都初始化为0,而不是一堆没有意义的随机数值。
>>> np.zeros((2, 3, 4))
array([[[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]],
[[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]]])
网友评论