python之numpy

xiaoxiao2021-02-28  40

numpy是python的一个扩展,包括数值计算矩阵等。

reshape

顾名思义就是改变形状,在这里是改变数据的形状,也就是数据的结构

np_data = np.arange(6).reshape((2,3)) print( '\nnp.arange(6)', np.arange(6), '\nnumpy', np_data, )

可以看见把一个线性的数据结构改为了二维的数据结构

array

首先要有数组的概念,咱从代码来看

array常规使用

import numpy as np d=np.array([1,2,3,4]) print("d",d) print("d[0]",d[0]) #d[0]=1(#表示后面接注释) print("----------------") e=np.array([(1,2),(3,4)]) print("e",e) print("type e[0]", type(e[0])) # e[0]的类型 print("e[0]",e[0]) # e[0]=array([1,2]) print("e[0][0]",e[0][0]) # e[0][0]=1 print("----------------") # 注意,这里是[],而上面是() e=np.array([[1,2],[3,4]]) print("e",e) print("type e[0]", type(e[0])) print("e[0]",e[0]) print("e[0][0]",e[0][0])

运行结果如下:从结果可以看到[] 和()在这里没有区别

array.T

列*行:2*3 这个是矩阵转置,就是说列变成行,行变成列,2*3也就变成了3*2

import numpy as np print(np.array([[1,2,3]])) print(np.array([[1,2,3],[2,2,2]])) print(np.array([[1,2,3],[2,2,2]]).T)

结果如下,本来是2行*3列的,变成了3行*2列

矩阵的乘法

dot()函数是矩阵乘,而*则表示逐个元素相乘

*乘

*乘表示逐个元素相乘

import numpy as np a = np.array([[2,2,2],[3,3,3]]) b = np.array([[4,4,4],[5,5,5]]) print("a*b=", a*b)

从结果可以看见,是对应位置的对应元素相乘。也就是说,两个矩阵行列必须相同(通俗的理解就是规格一样)

dot乘

dot()函数是矩阵乘

import numpy as np a = np.array([[2,2,2],[3,3,3]]) c = np.array([[4,4,4],[5,5,5],[6,6,6],[7,7,7]]).T # T表示转置 print("dot(a,c)=",np.dot(a,c))

这段代码的意思是一个2*3的矩阵 dot乘 3*4的矩阵 变成了2*4的矩阵 也就是说:要保证第一个矩阵的列与第二个矩阵的行规格是一样的(相邻两个数字是一样的) 2*3 dot 3*4 dot 4*5 = 2*5 值是怎么计算得来的呢? a一行中的每一个元素与b一列中的每一个元素对应相乘,最后再相加 result[0][0] = a[0][0]b[0][0] + a[0][1]*b[1][0] + a[0][2] b[2][0]+…… 2*4+2*4+2*4 = 24; 2*5+2*5+2*5 = 30; 2*6+2*6+2*6 = 36; 2*7+2*7+2*7 = 42 3*4+3*4+3*4 = 36; 3*5+3*5+3*5 = 45; 3*6+3*6+3*6 = 54;3*7+3*7+3*7 = 63

————暂时写到这里

—————————————————————————————————————

欢迎关注微信公众号:云端看大地

转载请注明原文地址: https://www.6miu.com/read-2627859.html

最新回复(0)