Python 逐片遍历无向量片
假设我有一个长度为30的向量Python 逐片遍历无向量片,python,theano,Python,Theano,假设我有一个长度为30的向量x=[0.1,0.2,0.1,0.1,0.2,0.4]。这个向量被theano张量包裹 我想创建一个新的向量,大小与x相同,但将每3个大小的切片元素设置为它们的总和,然后对接下来的3个元素执行相同的操作,以此类推 在本例中,第一个3长度切片的总和为0.4,第二个为0.7,因此r=[0.4,0.4,0.4,0.7,0.7,0.7] 我该怎么做?是否使用唯一方法?您可以在numpy中执行以下操作: import numpy as np x = np.array([0.1,
x=[0.1,0.2,0.1,0.1,0.2,0.4]
。这个向量被theano张量包裹
我想创建一个新的向量,大小与x
相同,但将每3个大小的切片元素设置为它们的总和,然后对接下来的3个元素执行相同的操作,以此类推
在本例中,第一个3长度切片的总和为0.4,第二个为0.7,因此r=[0.4,0.4,0.4,0.7,0.7,0.7]
我该怎么做?是否使用唯一方法?您可以在numpy中执行以下操作:
import numpy as np
x = np.array([0.1, 0.2, 0.1, 0.1, 0.2, 0.4])
y = (x.reshape(-1, 3).mean(1)[:, np.newaxis] * np.ones(3)).ravel()
print(y)
在theano中,您可以以非常类似的方式进行操作:
import theano
import theano.tensor as T
xx = T.fvector()
yy = (xx.reshape((-1, 3)).mean(axis=1).reshape((-1, 1)) * T.ones(3)).ravel()
print(yy.eval({xx: x.astype('float32')}))