python中导入numpy库_python中的Numpy库

导入numpy库:

import numpy as np

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]

你可能感兴趣的:(python中导入numpy库)