numpy全称为Numerical Python,是很多数据或科学相关Python包的基础。
1、numpy数组(ND array N维数组)
numpy数组是更适合数据分析的列表。
numpy的数组和Python的内置列表有相似之处,也有不同之处。
相似之处:我们都可以通过索引去获得某个元素,可以通过切片获得某个范围的多个元素,也可以去迭代各个元素。
不同之处:numpy数组里的元素必须是同一类型的,比如全都是数字(int和float可以写在同一数组中,但类型都变成了float类型),全都是字符串等等,列表则没有这个要求。
numpy数组的优势:在对numpy数组进行大规模的数学运算或其它操作时,其执行速度远高于Python内置列表,因此,使用numpy做数据处理的首要原因它的效率更高。此外,numpy也提供了很多专门做运算的函数,如:求平均值、标准差等,为操作数据提供了很多便利。
创建一维数组:
import numpy as np
array_a = np.array([1, 2, 3])
array_b = np.array([1, 2, 2.5])
print(array_a)
print(array_b)
输出:
创建二维数组(小技巧:看左边或右边有几个方括号,有几个就会被转换为几维数组):
此外,二维数组中,如果有其中一个列表中有float型,则另一个列表中的int类型元素也会被转换为float类型
array_2a = np.array([[1, 2, 3], [4, 5, 6]])
array_2b = np.array([[1, 2, 3], [4, 5, 6.5]])
print(array_2a)
print(array_2b)
输出:
2、numpy数组的一些属性(点后面名称不带括号的是属性)
1)变量名.ndim会返回给我们数组的维度
print(array_a.ndim)
print(array_2a.ndim)
2)变量名.shape会返回一个元组,表示各个维度元素的个数
array_a = np.array([1, 2, 3])
array_2a = np.array([[1, 2, 3], [4, 5, 6]])
print(array_a.shape)
print(array_2a.shape)
对于上面的一维数组,由于它在一维上有3个元素,所以返回 (3,),而那个二维数组在一维有两个元素(即两个列表),在二维有3个元素(即每个列表有3个元素),所以返回 (2, 3)
PS:如果array_2a = np.array([[1, 2, 3], [4, 5]]),则会报错,因为一个列表有3个元素,而另一个列表只有2个元素,二者元素数量不一样。
3)变量名.size会返回给我们数组中元素的总个数
array_a = np.array([1, 2, 3])
print(array_a.size)
array_2a = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2a.size)
4)变量名.dtype会返回给我们数组元素的类型
array_a = np.array([1, 2, 3])
print(array_a.dtype)
array_2a = np.array([[1, 2, 3], [4, 5, 5.5]])
print(array_2a.dtype)
3、numpy数组的一些方法(点后面名称带括号的是方法)
1)np.zeros()的括号中传入一个数字n,它就会返回一个全都是0的,长度为n的数组(元素类型是float)
array_0 = np.zeros(3)
print(array_0)
print(array_0.dtype)
输出:
2)np.ones()同上,元素为1
array_1 = np.ones(3)
print(array_1)
print(array_1.dtype)
输出:
3)np.arange()创建元素为数字序列的数组。参数1是起始值(在范围内),参数2是结束值(不在范围内),参数3是步长
array_arange = np.arange(1, 10, 2)
print(array_arange)