python之numpy

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

这里写图片描述

————暂时写到这里

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值