我有以下代码.它永远在Python中.必须有办法将此计算转换为广播......
def euclidean_square(a,b):
squares = np.zeros((a.shape[0],b.shape[0]))
for i in range(squares.shape[0]):
for j in range(squares.shape[1]):
diff = a[i,:] - b[j,:]
sqr = diff**2.0
squares[i,j] = np.sum(sqr)
return squares
Run Code Online (Sandbox Code Playgroud) 我有两个numpy数组container1以及container2where container1.shape = (900,4000)和container2.shape = (5000,4000)。使用合并它们会vstack导致MemoryError。搜索了此处发布的旧问题之后,我尝试使用slicing以下方法将它们合并:
mergedContainer = numpy.vstack((container1, container2[:1000]))
mergedContainer = numpy.vstack((mergedContainer, container[1000:2500]))
mergedContainer = numpy.vstack((mergedContainer, container[2500:3000]))
Run Code Online (Sandbox Code Playgroud)
但是之后即使我这样做:
mergedContainer = numpy.vstack((mergedContainer, container[3000:3100]))
Run Code Online (Sandbox Code Playgroud)
它导致MemoryError。
我正在使用Python 3.4.3 (32-Bit)并且想解决而无需转移到64-Bit。