numpy是python的一个扩展,包括数值计算矩阵等。
顾名思义就是改变形状,在这里是改变数据的形状,也就是数据的结构
np_data = np.arange(6).reshape((2,3)) print( '\nnp.arange(6)', np.arange(6), '\nnumpy', np_data, )可以看见把一个线性的数据结构改为了二维的数据结构
首先要有数组的概念,咱从代码来看
运行结果如下:从结果可以看到[] 和()在这里没有区别
列*行: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()函数是矩阵乘
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
————暂时写到这里
—————————————————————————————————————
欢迎关注微信公众号:云端看大地
