python中numpy数组及其内积、点乘、平方操作

一、numpy数组

使用numpy创建的数组叫做ndarray,是一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。接下来我们来创建几个数组:
1、一维数组

import numpy as np
##一行一列
a = np.array([1])
##一行两列
c = np.array([1,2])

2、二维数组

##两行一列
b = np.array([[1], [1]])
##两行两列
d = np.array([[1, 2], [1, 2]])

3、三维数组

##形状为1X2X2
e = np.array([[[1, 2], [1, 2]]])
##形状为1X3X2
f = np.array([[[1, 2], [1, 2], [1, 2]]])

在此举这么多重复的例子主要是为了帮助大家理解数组维度的对应关系,也方便我们通过索引来寻找指定的元素。例如,f[0, 1, 1] = 2

二、数组的乘法

一般涉及二维数组(即矩阵),二维数组的乘法需要满足一个条件,那就是第一个数组的列数要和第二个数组的行数相等,具体的数学计算方法大家可以上网搜一下。在python里进行这个操作我们一般使用np.dot()。

##矩阵的乘法,前一个矩阵的列数等于下一个矩阵的行数,生成的矩阵行数和第一个的相同,列数和第二个的相同
m = np.array([[1, 2, 3], [4, 5, 6]])       ##2X3
n = np.array([[1, 2], [3, 4], [5, 6]])     ##3X2
p = np.dot(m, n)
q = np.matmul(m, n)
##p和q相同

三、数组的元素乘法

使用np.multiply函数或者乘号(*)

a = np.zeros((2,2,2))
a[:,:,0]=([[3,6],[5,8]])
a[:,:,1]=([[2,5],[7,2]])
b = np.zeros((2,2,2))
b[:,:,0]=([[3,2],[9,6]])
b[:,:,1]=([[7,8],[1,0]])
c = a*b
d = np.multiply(a, b)
print(np.all(c == d))
##输出为True

看到这里,大家可能觉得进行点乘操作的两个矩阵的形状要相同,但是事实上做点乘的两个矩阵的形状不一定要相同。

x = np.array([[1], [2]])          #2X1
y = np.array([[[1, 1], [2, 4]]])  #1X2X2
z = x * y                         #1X2X2

最后,如果我们想把数组的每个元素进行平方,可以进行如下两种操作:

e = np.array([1, 2, 3, 4, 5, 6])
f = e ** 2
g = e * e
print(np.all(f == g))
##输出为True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉德萨姆ys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值