Numpy基础

一、numpy的属性

import numpy as np

此语法导入了numpy库,并且给numpy起了一个别称np用来方便以后的使用。
下面定义一个矩阵:

array=np.array([[[1,2,3],
               [4,5,6],
               [7,8,9]]])
print(array)

执行:

print(array.ndim)

可以查询到矩阵,输出结果为3。还有一些操作如下:

print(array.shape)#输出矩阵形状
print(array.size)#输出矩阵大小
print(array.dtype)#显示矩阵的元素类型

二、创建array

import numpy as np
a=np.array([1,2,3],dtype=np.int32)#创建一个内容为1,2,3,数据类型为整形32位的数组
print(a.dtype)

创建一个二维矩阵,注意中括号数目:

d=np.array([[1,2,3],
           [4,5,6]])#创建一个二维矩阵
print(d)

生成一个2行3列的零矩阵:

zero=np.zeros((2,3))
print(zero)

生成3行4列全为1的矩阵:

one=np.ones((3,4))
print(one)

生成3行2列每个元素全都接近0的矩阵:

empty=np.empty((3,2))
print(empty)

生成4-11的一维数组:

e=np.arange(4,12)
print(f)

reshape()方法变换矩阵形状:

h=np.arange(8).reshape(2,4)
print(h)

三、numpy的运算

矩阵按位相加:

import numpy as np
arr1=np.array([[1,2,3],
              [4,5,6]])
arr2=np.array([[1,1,2],
               [2,3,3]])
print(arr1)
print(arr2)
print(arr1+arr2)

结果:[[2 3 5] [6 8 9]]

另外:

print(arr1-arr2)#arr1减arr2
print(arr1*arr2)#arr1乘arr2
print(arr1**arr2)#arr1为底数,arr2为幂数
print(arr1/arr2)#按位相除
print(arr1%arr2)#取余
print(arr1//arr2)#取整
print(arr1+2)#矩阵内所有元素都加2
print(arr1*10)#所有元素都乘10 

判断矩阵内元素大小,结果保存在arr3中:

arr3=arr1>3
print(arr3)

矩阵的乘法:

arr4=np.ones((3,5))#创建arr4
print(arr4)
np.dot(arr1,arr4)

转置矩阵:

print(arr1)
print(arr1,T)#矩阵转置

四、随机数生成以及矩阵的运算

生成3行2列从0到1的随机数:

import numpy as np
sample1=np.random.random((3,2))
print(sample1)

生成3行2列符合标准正态分布的随机数:

sample2=np.random.normal(size=(3,2))
print(sample2)

在0-10范围内生成3行2列的随机整数:

sample3=np.random.randint(0,10,size=(3,2))
print(sample3)

对sample1矩阵操作:

np.sum(sample1)#对矩阵所有求和
np.min(sample1)#求矩阵里最小的元素
np.max(sample1)#求矩阵里最大的元素
np.sum(sample1,axis=0)#对列求和
np.sum(sample1,axis=1)#对行求和
np.argmin(sample1)#求最小值索引
np.argmax(sample1)#求最大值索引
print(np.mean(sample1))#求矩阵平均值
np.median(sample1)#求中位数
np.sqrt(sample1)#求开方结果

对矩阵元素进行排序:

sample4=np.random.randint(0,10,size=(1,10))
print(sample4)
np.sort(sample4)#对仅有的一行排序
np.sort(sample1)#对矩阵每一行进行排序
np.clip(sample4,2,7)#sample4里元素小于2变为2,大于7变为7

五、numpy的索引

首先建立2-13的一维数组:

arr1=np.arange(2,14)
print(arr1)

执行结果如下:

[2  3  4  5  6  7  8  9  10  11  12  13  14]

那么有:

print(arr1[2])#第二个位置数据
print(arr1[1:4])#提取第1-3位置数据
print(arr1[2:-1])#第2到倒数第二个位置数据
print(arr1[:5])#前五个数据
print(arr1[-2:])#最后两个数据

对于矩阵:

arr2=arr1.reshape(3,4)#把arr1变为3行4列的矩阵
print(arr2)
print(arr2[1])#输出矩阵第一行
print(arr2[1][1])#输出第一行第一列数据
print(arr2[:,2])#输出所有行里的第二列,注意逗号
for i in arr2:#迭代行
	print(i)
for i in arr2.T:#迭代列
	print(i)
for i in arr2.flat:#扁平化,一个一个元素迭代

六、array的合并

两个一维数组合并为矩阵

import numpy as np
arr1= np.array([[1,2,3])
arr2=np.array([[4,5,6])
arr3=np.vstack((arr1,arr2))#垂直合并
print(arr3)
arr4=np.hstack((arr1,arr2))#水平合并
print(arr4)

还有一种方式:

arr=np.concatenate((arr1,arr2),axis=0)#0代表垂直合并,1代表水平合并,注意合并的维度要相同
print(arr)

增加维度:

arr1.T
print(arr1.T)#注意一维的array不能转置,此处转置后结果和转置前一样
arr1_1=arr1[np.newaxis,:]#增加维度,变为1行3列的矩阵
print(arr1_1.T)#此处可以转置
arr1_2=arr2[:,np.newaxis]#增加维度为3行1列的矩阵
print(arr1_2)
arr1_3=np.atleast_2d(arr1)#把小于2维的矩阵转变为2维,大于等于2维的矩阵保持不变
print(arr1_3)

七、array的分割

import numpy as np
arr1=np.arange(12).reshape((3,4))
print(arr1)
arr2,arr3=np.split(arr1,2,axis=1)#竖直方向切割,分成两份
print(arr2)
print(arr3)
arr4,arr5,arr6=np.split(arr1,3,axis=0)#水平方向切割,分成3份
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值