目录
Numpy最重要的一个特点是N维数组对象ndarray,它是一系列同类型数据的集合。
1.创建数组
1.1 零元素数组
numpy.zeros(shape,dtype = float , order = ‘C’)
例:
import numpy as np
e = np.zeros(5)
e
1.2 1元素数组
numpy.ones(shape,dtype = float , order = ‘C’)
import numpy as np
h = np.ones(5)
h
1.3 arange函数
numpy.arange(start ,stop ,step ,dtype)
注:包含起始值(默认为0),不包含终止值,步长默认为1
import numpy as np
arr = np.arange(-10,10,2)
arr
1.4 等差数列
numpy.linspace(start ,stop ,num = ,endpoint = True , retstep =False,dtype=None)
注:stop为终止值,如果endpoint为True(默认为True),则包含终止值,num表示生成的样本数量,retstep如果为True,显示间距。
# 生成等差数列
import numpy as np
arr = np.linspace(0,5,6,retstep = True)
arr
1.5 等比数列
numpy.logspace(start ,stop ,num = ,endpoint = True ,base = ,dtype=None)
注:起始值为base**start,终止值为base**stop,base为对数log的底数
#生成等比数列
import numpy as np
arr = np.logspace(1,10,10,base=2)
arr
2.数据索引与切片
Numpy语法与Python列表的标准切片语法相同,此处不在赘述。
3.数组操作
3.1修改数组形状
numpy.reshape(arr ,newshape , order =‘C’)
# 修改数组形状
import numpy as np
a = np.arange(12)
print("原始数组:")
print(a)
b = a.reshape(3,4)
print("修改后的数组:")
print(b)
3.2 翻转数组
翻转数组函数有:
transpose:对换数组维度
ndarray.T:和self.transpose()相同
rollaxis:向后滚动指定的轴
swapaxes:对换数组的两个轴
主要介绍transpose
numpy.transpose(arr,axes)
注:arr:要操作的数组,axes整数列表,对应维度
# 使用transpose对换数组
import numpy as np
a = np.arange(20).reshape(5,4)
print("原始数组:")
print(a)
print("对换数组:")
print(np.transpose(a))
注:ndarray.T函数与numpy.transpose功能相似,都是对数组进行转置操作。
3.3 连接数组
连接数组函数有:
concatenate:连接沿现有轴的数组序列
stack:沿着新的轴加入一系列数组
hstack:水平堆叠序列中的数组(列方向)
vstack:竖直堆叠序列中的数组(行方向)
主要介绍concatenate
numpy.concatenate((a1,a2,...),axis)
# 连接两个数组
import numpy as np
a = np.array([[1,2],[3,4]])
print("第一个数组")
print(a)
b = np.array([[5,6],[7,8]])
print("第二个数组")
print(b)
print("沿轴0连接两个数组:")
print(np.concatenate((a,b)))
print("沿轴1连接两个数组:")
print(np.concatenate((a,b),axis =1))
3.4 分割数组
numpy.split(arr,indices_or_sections,axis)
注:indices_or_sections如果是整数,就用该数平均切分,如果是一个数组,沿轴的方向进行切分。
#数组分割
import numpy as np
a = np.arange(12)
print("第一个数组")
print(a)
print("将数组分为3个大小相等的子数组:")
b = np.split(a,4)
print(b)
print("将数组在一维数组中表明的位置分割:")
b = np.split(a,[4,7])
print(b)
3.5 元素添加与删除
resize:返回指定形状的新数组
append:将值添加至数组末尾
insert:沿指定轴将值插入指定下表之前
delete:删掉某个轴的子数组,并返回删除后的新数组
unique:查找数组内的唯一元素。
3.6 数组排序
3.6.1 sort函数
ndarray.sort(a,axis = -1, kind = 'quicksort' ,order = None)
注:a需要排序的数组,axis沿着数组的方向排序,0表示按行,1表示按列。kind排序的算法,提供了快排,混排,堆排。
3.6.2 argsort函数
numpy.argsort函数返回的是数组值从小到大的索引值,语法结构与sort一致。
# argsort函数
c = np.array([2,1,5,8,-5,4])
c.argsort()
3.7 字符串函数
add:对两个数组的组个字符串元素进行连接。
capitalize:第一个字母大写
title:每个单词的第一个字母大写
lower:小写
upper:大写
split:分割
strip:移除元素开头或结尾的特定字符
replace:替换
3.8 数学函数
abs、fabs:绝对值
square:平方
ceil:向上取整
floor:向下取整
3.9 矩阵
3.9.1空矩阵
numpy.matlib.empty(shape,dtype,order)
import numpy.matlib
import numpy as np
a = np.matlib.empty((3,3))
print(a)
3.9.2 零矩阵
3.9.3 全1矩阵
3.9.4 单位矩阵
3.9.4 对角矩阵
numpy.matlib.eye(n,M,k,dtype)
注:n矩阵行数,m矩阵列数,K对角线索引