使用Numpy内部功能函数
Numpy具有用于创建数组的内置函数。
创建一个一维的数组
arrange是一种广泛使用的函数,用于快速创建数组。
>>> import numpy as np
>>> array=np.arange(20)
>>> array
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19])
>>> array.shape
(20,)
>>> array[3]
3
>>> array[3]=100
>>> print(array)
[ 0 1 2 100 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19]
>>>
要验证数组的维度,使用shape属性。
创建一个二维数组
创建二维数组,使用reshape函数链接输出。
>>> array=np.arange(20).reshape(4,5)
>>> array
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
>>> array[3][4]
19
>>>
创建三维数组及更多维度
创建三维数组,使用reshape函数指定3个参数。
>>> array=np.arange(27).reshape(3,3,3)
>>> array
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
>>> array.shape
(3, 3, 3)
>>> np.arange(10,35,3)
array([10, 13, 16, 19, 22, 25, 28, 31, 34])
>>>
使用其它Numpy函数
使用zeros函数创建一个填充零的数组。
使用ones函数创建一个填充1的数组。
empty函数创建一个数组。它的初始内容是随机的,取决于内存的状态。
full函数创建一个填充给定值的n * n数组。
eye函数可以创建一个n * n矩阵,对角线为1s,其他为0。
函数linspace在指定的时间间隔内返回均匀间隔的数字。 例如,下面的函数返回0到10之间的四个等间距数字。
>>> np.zeros((2,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.]])
>>> np.ones((3,4))
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
>>> np.empty((2,3))
array([[8.67491386e-154, 8.90301763e+247, 4.45485182e+217],
[3.99255565e+252, 6.89966770e+212, 2.64521822e+185]])
>>> np.full((2,2),3)
array([[3, 3],
[3, 3]])
>>> np.eye(3,3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
>>> np.linspace(0,10,num=4)
array([ 0. , 3.33333333, 6.66666667, 10. ])
>>>
从Python列表转换
array是Python列表,list是Numpy数组。
>>> array=np.array([4,5,6])
>>> array
array([4, 5, 6])
>>> list=[4,5,6]
>>> list
[4, 5, 6]
>>> array=np.array(list)
>>> array
array([4, 5, 6])
>>> type(list)
<class 'list'>
>>> type(array)
<class 'numpy.ndarray'>
>>> array=np.array([(1,2,3),(4,5,6)])
>>> array
array([[1, 2, 3],
[4, 5, 6]])
>>> array.shape
(2, 3)
>>>
使用特殊的库函数
要创建一个填充0到1之间随机值的数组,请使用random
函数。
>>> np.random.random((2,2))
array([[0.65559463, 0.36763821],
[0.54848971, 0.00770224]])
>>>