0.简介
numpy的核心特征是ndarray(N维数组对象),ndarray是python中一个快速,灵活的大型数据集容器。
导入:import numpy as np
1.基本使用
1.1 生成
- 最简单的方法:array ,给它一个列表作为参数,并指定数组的数据类型dtype。
data=np.array([i for i in range(10)],dtype='int64')
生成一个一维的数组。
data1=np.array([[1,2,3,4],[5,6,7,8]],dtype='int64')
生成2*4的数组。
2. 使用 arange
data2 = np.arange(4, 10, 2) # arrange(start,end,step),开始值到结束值每隔2,取一个值,不含尾值
data2=np.arange(10) #默认从0开始,步长为1
data2=[4,6,8]
arange与python中的range类似,但是range中的步长只能为int型,arange还可以为浮点型。
3. 使用其它函数
zeros:全0数组
ones:全1数组
empty:未初始化的数组
full 指定数值
创建高维数组则需为shape提供一个元组。
data3=np.zeros(10) #创建1*10的全0数组
data4=np.zeros((2,3),dtype=int) #2*3
np.full(shape=(3,5),fill_value=6)
- linspace
np.linspace(0,20,11) #从0到20取11个构成等差数列的数,包括0和20
- random
np.random.randint(0,10,size=10) #生成 [0,10)的10个随机整数
np.random.randint(0,10,size=(3,4))
np.random.seed(666) #设置随机种子,使用相同的随机种子,同样的语句,生成同样的随机结果
np.random.random((3,5)) #生成0-1间均匀分布的随机矩阵,仅需指定size参数
np.random.normal(10,100,size=(3,5)) #均值10,标准差100的随机矩阵
np.random.uniform(1-,1,size=100) # [1,-1)的均匀分布分布
1.2 基础属性
data.shape #数组的形状
data.dtype #数组的数据类型
data.ndim #数组是几维的
data.size #数组中有多少元素
data([2,2]) #推荐的索引方式
data[0:10:2] #切片[0,10)
对于二维数组的切片:
data[:2,:3] #取其前两行前三列
data[::-1,::-1] # 矩阵反转
data[:,0] #取一列
对于python中的list,进行切片操作时,子列表是独立于原list的,即分别占用内存空间。但是在numpy中,由于处理的数据规模较大,在进行切片时并不进行复制而是直接引用,故对子矩阵的修改会直接隐影响到原矩阵,同理对原矩阵的修改会直接影响到子矩阵。但:
data3=data[:2,:3].copy()