python Numpy学习
Numpy是Python的一种开源的数值计算扩展器。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。 Numpy提供了许多高级的数值编程工具。 Numpy的一个重要特性是它的数组计算。是我们做数据分析必不可少的一个包。
导入python库使用关键字import,后面可以自定义库的简称,但是一般都是将 Numpy命名为np,pandas命名为pd.
使用前一定要先导入 Numpy包,导入方法有以下几种方法:
import numpy
import numpy as np
from numpy import *
Numpy的数组对象及其索引
数组上的数学操作:
假如我们想将列表中的每个元素增加1,但列表不支持这样的操作:
a=[1,2,3,4]
b=[2,3,4,5]
[x+1 for x in a]#每个元素增加1
[2, 3, 4, 5]
[x+y for (x,y) in zip(a,b)]
[3, 5, 7, 9]
上述方法使用起来很繁琐,接下来将使用Numpy操作:
a=np.array([1,2,3,4])
array([1, 2, 3, 4])
a+1
array([2, 3, 4, 5])
a*2
array([2, 4, 6, 8])
产生数组
从列表产生数组:
l=[0,1,2,3]
a=np.array(l)
a
array([0, 1, 2, 3])
从列表传入:
a=np.array([1,2,3,4])
a
array([1, 2, 3, 4])
生成全是0的数组:
np.zeros(5)
array([0., 0., 0., 0. ,0.])
生成全是1的数组:
np.ones(5)
array([1., 1., 1., 1.,1.])
np.ones(5,dtype='int')
array([1, 1, 1, 1, 1])
可以使用fill方法将数组设为指定值:
a=np.array([1,2,3,4])
array([1, 2, 3, 4])
a.fill(5)
array([5, 5, 5, 5])
a.fill(2.5)#发现不能转换为浮点数类型
array([2, 2, 2, 2])
a=a.astype('floot')#数据类型修改
a.fill(2.5)
array([2.5, 2.5, 2.5, 2.5])
生成整数序列:
a=np.arange(1,10)
a
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
生成等差序列:
a=np.linspace(1,10,21)#生成从1到10的21个等差序列
array([ 1. , 1.45, 1.9, 2.35, 2.8 , 3.25, 3.7 , 4.15,
4.6, 5.05, 5.5, 5.95, 6.4 , 6.85, 7.3 , 7.75,
8.2, 8.65, 9.1, 9.55, 10. ])
生成随机数:
np.random.rand(10)#生成0-1的随机数
array([0.59924725, 0.5966375, 0.5476186, 0.8195594,
0.730199751, 0.44955513, 0.7895297, 0.8632088,
0.1864462, 0.8251595])
数组属性
查看类型:
a
array([ 1. , 1.45, 1.9, 2.35, 2.8 , 3.25, 3.7 , 4.15,
4.6, 5.05, 5.5, 5.95, 6.4 , 6.85, 7.3 , 7.75,
8.2, 8.65, 9.1, 9.55, 10. ])
type(a)
numpy.ndarray
查看数组中的数据类型:
a.dtype
dtype('float64')
查看形状,会返回一个元组,每一元素代表这一维的元素数目:
a.shape
(21, )
查看数组里面元素的数目:
a.size
21
查看数组的维度:
a.ndim
1