创建数组
在使用Numpy的数组前,我们必须对Numpy库进行引入。
import numpy as np
我们可以通过将Python列表传递给它并使用 np.array() 来创建一个NumPy数组(也就是强大的ndarray)。在这种情况下,Python创建了下面的数组:

一个常见的错误在于使用多个数值参数调用 array 函数,而不是提供一个数字列表(List)作为参数。
a = np.array(1,2,3,4) # *WRONG*
a = np.array([1,2,3,4]) # *RIGHT*
通常情况下,我们希望NumPy为我们初始化数组的值。NumPy为这些情况提供了诸如:ones() ,zeros() ,empty() 和 random.random() 之类的方法。
函数 zeros() 创建一个由 0 组成的数组,函数 ones() 创建一个由1数组的数组,函数 empty() 内容是随机的并且取决于存储器的状态,函数 random.random() 创建一个由 [0,1) 。默认情况下,创建的数组的 dtype 是 float64。

另外,arange() 函数将创建具有有规律递增值的数组。这里给出几个例子:
>>> np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(2, 10, dtype=np.float)
array([ 2., 3., 4., 5., 6., 7., 8., 9.])
>>> np.arange(2, 3, 0.1)
array([ 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9])
linspace() 函数将创建具有指定数量元素的数组,并在指定的开始值和结束值之间平均间隔。例如:
>>> np.linspace(1., 4., 6)
array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])
这个创建函数的优点是可以保证元素的数量以及开始和结束点,对于任意的开始,停止和步骤值, arange() 函数通常不会这样做。
创建布尔数组
我们创建一个Numpy数组元素值全为True(真)的布尔数组。
np.full(5, True, dtype=bool)
Out: array([ True, True, True, True, True])
上面的 full() 函数用于创建一个填充给定值的数组,dtype 表示给定值的类型。
数组的计算
我们创建两个NumPy数组 data 和 ones ,并进行计算。

下面计算两个数组的和:

通过上面的计算,我们发现,可以像操作变量一样操作Numpy中的数组,而不必使用任何循环结构。

通常情况下,我们希望在数组和单个数值之间执行操作(也可以将其称为向量和标量之间的操作)。比如,我们的数组表示以英里为单位的距离,我们希望将其转换为公里数。可以进行简单的计算 data * 1.6 :

Numpy数组在进行计算时,数组中的每个元素都进行了计算,这就是上节中提到的 广播 ,这个概念十分的有用。
索引
我们可以通过Python对列表的切片方式,对NumPy数组进行索引和切片:

索引还可以使用负值,如下:
in: print(data[-2]);
out: 2
数组的常用方法
Numpy数组,为我们提供了很多有用的方法。

除了 min(),max() 和 sum(),还有 mean() 求平均值,prod() 得到所有的元素相乘结果,std() 得到的标准偏差,和其他很多的方法。
1923

被折叠的 条评论
为什么被折叠?



