一、numpy 数据结构
1、导入包
import numpy
2、创建数组
nums=numpy.array([5,10,20,15])
matrix=numpy,array([[5,10,20,15],[5,10,20,15]])
3、获取向量的维度 .shape
print(nums.shape)
print(matrix.shape)
4、获取属性 .dtype #.dtype.name
print(nums.dtype)
List中可以存任何类型的数据,但是ndarray中所有数据的类型必须一样
5、numpy读取文件:读出的数据是矩阵的形式 ndarray
world_alcohol=numpy.genfromtxt("...",delimiter=",",dtype=str,skip_header=1)
#skip_header=1 去掉第一行
#delimiter=","分隔符是","
6、获取矩阵中的元素
获取所有样本的第二列 print(python[:,1])
获取所有样本的2到3行 print(python[1:3,:])
区分 python[1:] 和 python[1,:]
二、numpy基本操作
1、对于矩阵中的每一个元素进行判断
vector= numpy.array([1,2,3,4,10])
equal_to_ten=(vector==10)#python中的与和或用 & |(vector==10)|(vector==5)
print(equal_to_ten)
输出:array([False, False, False, False, True])
2、对矩阵进行过滤
print(vector[equal_to_ten])
输出:[10]
3、numpy中的类型转换
vector.astype(str)
4、numpy获取最小值和最大值或求和
matrix.sum(axis=1)#按行进行
matrix.sum(axis=0)#按列进行
三、矩阵属性
1、构造一个从零开始的排列
a=np.arange(15)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
2、对矩阵结构进行重新构造
a.reshape(3,5)
a.shape=(3,5)
3、获取矩阵有几个维度 .ndim
4、获取矩阵中有多少个元素 .size
四、矩阵操作
1、获取一个全零的矩阵
np.zeros((3,4)) #默认是float类型的
2、获取一个全1的矩阵,设置格式
np.ones((2,3,4),dtype=np.int32)
3、获取一个均匀分布的数组
np.arange(起始值,终止值,间隔)
np.arange(10,30,5)
获取一个均匀分布的数组
np.arange(起始值,终止值,多少个数)
np.linspace(0,2*pi,100)
4、获取一个随机数构成的矩阵
np.random.random((4,5))
5、ndarray的运算
维度一样,对应项进行操作
纬度不一样,每个值进行相同的操作
矩阵相乘:A.dot(B) np.dot(A,B)
五、常用函数
1、各种函数
np.exp(B)
np.sqrt(B)
np.floor(B)#向下取整
2、把矩阵变成向量
B.ravel()
3、求矩阵转置
A=B.T
4、将两个矩阵进行拼接
np.vstack(A,B)#按行拼接
np.hstack(A,B)#按列拼接
5、将矩阵进行切分
np.hsplit(A,3)#切分成三个
np.hsplit(A,(3,4))#在34分别切一刀
6、获取最大值或最小值的位置
ind=A.argmax(axis=0) #每列中最大值的位置
data_max=A[ind,range(A.shape[1])]#获取这些最大值
7、矩阵的扩展
b=np.tile(a,(4,2))#行变成4倍,列变成2倍
8、对矩阵进行排序
np.sort(A,axis=1)#按行排序
np.argsort(A,axis=1) #按索引值进行排序
六、变量
1、a=b a和b完全一样,指向内存中同一块空间
2、c=a.view() c初始化为和a一样的值,变换a和c中的一个值,两个都相同变,
是一个浅复制,id不一样
3、d=a.copy() d初始化为和a一样的值,变换a和d中的一个值,另一个不变