python numpy库作用_python中Numpy库

导入numpy库:

import numpy as np

Numpy是python的一个科学计算库的一个基础包,包含了强大的N维数组对象和向量运算

数组创建,可以使用array函数从常规的python列表和或元组中创建数组,得到的类型是从列表元素中农推导出来的

使用array函数创建数组,他接受一切序列型的对象,包括其他数组,然后产生一个新的 含有传入数据的numpy数组,其中嵌套数组会被转化为一个多维数组

把列表转化为数组

array=np.array([[1,2,3],[4,5,6]])

print(array,type(array))

#结果:

[[1 2 3]

[4 5 6]]

a=np.array([1,2,3,4])

print(a,type(a))

#结果:

[1 2 3 4]

把元组转化为数组

array1=np.array(((1,2,3),(1,2,3)))

print(array1,type(array1))

#结果:

[[1 2 3]

[1 2 3]]

创建初始占位内容的数组,zeros()可以创建指定长度或形状的全0数组 ones()可以创建指定长度或形状的全1数组 empty()可以创建一个数组,他的初始内容是随机的,取决于内存的状态

zeroarray=np.zeros((2,3))

print(zeroarray)

#结果:

[[0. 0. 0.]

[0. 0. 0.]]

onesarray=np.ones((3,3))

print(onesarray)

#结果:

[[1. 1. 1.]

[1. 1. 1.]

[1. 1. 1.]]

emptyarray=np.empty((3,4))

print(emptyarray)

#结果:

[[7.06652000e-096 8.48798317e-314 6.01346930e-154 1.21328784e-311]

[7.18988866e+140 6.01346953e-154 4.24399158e-313 4.94065646e-324]

[1.21333862e-311 4.94065646e-324 1.21333862e-311 9.18024560e+062]]

Numpy提供了一个类似于range的函数,该函数返回数组而不是列表

array2=np.arange(10,31,5)

print(array2)

#结果:

[10 15 20 25 30]

输出数组的维度ndim,输出数组的形状shape,输出数组的元素个数size,元素类型dtype

print(array1)

#结果:

[[1 2 3]

[1 2 3]]

print(array1.ndim)#输出维度 2

print(array1.shape)#输出形状 (2, 3)

print(array1.size)#输出个数 6

print(array1.dtype)#输出元素类型int32

重新定义数组的形状

array3=np.arange(6).reshape([2,3])

print(array3)

#结果:

[[0 1 2]

[3 4 5]]

array3=np.array([[1,2,3],[4,5,6]],dtype=np.int64).reshape([3,2])

print(array3)

#结果:

[[1 2]

[3 4]

[5 6]]

矩阵的基础运算

arr1=np.array([[1,2,3],[4,5,6]])

arr2=np.ones([2,3],dtype=np.int64)

print(arr1+arr2)

#结果:

[[2 3 4]

[5 6 7]]

print(arr1-arr2)

#结果:

[[0 1 2]

[3 4 5]]

print(arr1*arr2)

#结果:

[[1 2 3]

[4 5 6]]

print(arr1/arr2)

#结果:

[[1. 2. 3.]

[4. 5. 6.]]

print(arr1**2)

#结果:

[[ 1 4 9]

[16 25 36]]

矩阵的乘法

arr3=np.array([[1,2,3],[4,5,6]])

arr4=np.ones([3,2],dtype=np.int64)

print(arr3)

print(arr4)

print(np.dot(arr3,arr4)) #矩阵的乘法

#结果:

[[ 6 6]

[15 15]]

矩阵的其他计算

print(arr3)

#结果:

[[1 2 3]

[4 5 6]]

print(np.sum(arr3,axis=1))#axis=1是矩阵每一行求和,=0是每一列求和

print(np.sum(arr3,axis=0))

print(np.sum(arr3))

结果:

[ 6 15]

[5 7 9]

21

print(np.max(arr3))#矩阵中的最大值,axis=1是每一行的最大值,=0是每一列的最大值

print(np.min(arr3))

#结果:

6

1

print(np.mean(arr3))#矩阵中所有元素的均值,axis=1是每一行的均值,=0是每一列的均值

#结果:

3.5

print(np.argmax(arr3))#如果没有参数,就是最大值的索引

print(np.argmax(arr3,axis=1))#如果加上参数axis=1是a[0][0],a[1][0]和a[0][1],a[1][1]分别进行对比,初始是(0,0)大一次,就在对应的那行加1,比到最后,就是最后的结果了

print(np.argmax(arr3,axis=0))#如果加上参数axis=0是a[0][0],a[0][1]和a[1][0],a[1][1]分别进行对比,初始是(0,0)大一次,就在对应的那行加1,比到最后,就是最后的结果了

#结果:

5

[2 2]

[1 1 1]

print(np.argmin(arr3))

#结果:

0

矩阵的转置

zhuanzhi=np.transpose(arr3)

print(zhuanzhi)

#结果:

[[1 4]

[2 5]

[3 6]]

#把矩阵或数组降到一维

print(arr3.flatten())#默认是按横向进行降的

print(arr3.flatten('F'))#F参数表示是按竖向进行降的

#结果:

[1 2 3 4 5 6]

[1 4 2 5 3 6]

数组的索引和切片

arr5=np.arange(0,6).reshape([2,3])

print(arr5)

print(arr5[1])#索引为1的那行[3,4,5]

print(arr5[1][2])#索引为1行2列的那个值 5

print(arr5[1,2])#索引为1行2列的值 5

print(arr5[1,:])#行索引为1的那行,[3,4,5]

print(arr5[:,1])#列索引为1的那列,[1,4]

print(arr5[1,0:2])#行索引为1中的列索引为0,1的切片,遵循左闭右开的原则[3,4]

#结果:

[[0 1 2]

[3 4 5]]

[3 4 5]

5

5

[3 4 5]

[1 4]

[3 4]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值