小节9:Python之numpy

numpy全称为Numerical Python,是很多数据或科学相关Python包的基础。

小节9:Python之numpy_第1张图片

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)

输出:

小节9:Python之numpy_第2张图片

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)

小节9:Python之numpy_第3张图片

对于上面的一维数组,由于它在一维上有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)

小节9:Python之numpy_第4张图片 

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)

小节9:Python之numpy_第5张图片

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)

输出:

小节9:Python之numpy_第6张图片

3)np.arange()创建元素为数字序列的数组。参数1是起始值(在范围内),参数2是结束值(不在范围内),参数3是步长

array_arange = np.arange(1, 10, 2)
print(array_arange)

你可能感兴趣的:(Python,python,numpy,开发语言)