更改减法后数组的大小

2024-04-19 15:33:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想简单地减去2个大小为784×1的矩阵 使用此代码

w2 = G.w - alpha *temp
print(w2.size)

但是w2是一个784×784矩阵。为什么元素减法不能正常工作? temp和G.w都是784×1矩阵,alpha是标量(alpha = 0.1) 我在windows10上使用pycharm。 重新思考如何创建G.w和temp


Tags: 代码alpha元素size矩阵temppycharmprint
2条回答

使用^{}

w2 = G.w - alpha *temp.reshape(-1,1)
print(w2.shape)
(784,1)

^{}(慢一点,参见示例):

w2 = G.w - alpha *temp.transpose()
print(w2.shape)
(784,1)

示例

A = np.random.rand(100,1)
B = np.random.rand(1,100)

print(A.shape)
(100, 1)

print(B.shape)
(1, 100)

print((A - 0.1*B).shape)
(100, 100)

print((A - 0.1*B.reshape(-1,1)).shape) #3.86 µs per loop
(100, 1)

print((A - 0.1*B.transpose()).shape) #5.27 µs per loop
(100, 1)

这可能是因为你没有按你想的方式工作 例如,如果temp是数组[1,2,3]alpha2,那么

alpha*temp = [1,2,3,1,2,3]

而不是=[2,4,6]

可以使用numpy数组而不是普通的python数组

#!....initialize G ,w ,alpha, temp
w1 = G*w - alpha*temp
#w1 will be a 784x1 array
w2 = numpy.zeros((784,784))
for i in range(w1.shape[0]):
   w2[i][0] = w1[i]  #this will set first coloumn to w1

相关问题 更多 >