Numpy的数组对象及其索引
- 为什么要有Numpy数组?
假若我们要使得列表种的每一个元素都增加1,直接增加列表并不支持
如
a=[1,2,3,4]
a=a+1
会出现如下错误:
可以使用列表生成式完成操作
a=[1,2,3,4]
[x+1 for x in a]
- 列表也不支持两个列表对应元素相加,如:
a=[1,2,3,4]
b=[2,3,4,5]
a=a+b
a
结果如下:
同理可以使用列表生成式:
[x+y for (x,y) in zip(a,b)]
但是这样操作会比较麻烦,而且当数据量很大的时候会非常消耗时间。
如果我们使用Numpy,就会变得非常的简单
如:
a=np.array([1,2,3,4])
a=a+1
结果如下:
还有对应数组相加:
a=np.array([1,2,3,4])
b=np.array([2,3,4,5])
a=a+b
结果如下:
是不是方便很多
产生数组的方法
1.可以从列表产生数组:
a=[1,2,3,4]
b=np.array(a)
2.从列表传入:
b=np.array([1,23,4])
3.生成全0数组:
b=np.zeros(10) #10代表生成0的个数
强调一点,数组和列表不一样的地方,数组要求数组类型都是一样的,
转换数据类型
b.astype('int')
还可以使用一些特定的方法生成特殊的数组
生成整形数组
a=np.arange(1,10,5) #表示1到10的数(不包括10),差距为5
生成等差数组
b=np.linspace(1,10,10) #表示1到10的数,等差分成10个
生成随机数组
- 生成随机整形数组
b=np.random.randint(1,10,10) #随机生成1到10(不包括10)的10个随机整数
- 生成随机浮点型数组
b=np.random.rand(10) #0到不包括1的随机浮点数
- 生成服从标准正态分布的随机数
b=np.random .randn(10)
数组的属性
查看数组存储的数据类型
a.dtype
查看数组的形状
a.shape
查看数组的维数
a.ndim
查看数组的大小
a.size