value error:cann't broadcast input array from shape (29097,280,212,3) into shape (280,212,3)
value error:cann't broadcast input array from shape (29097,280,212,3) into shape (280,212,3)
我有5个大型numpy数组,我想将它们合并成一个numpy数组。
使用 np.concatenate 没有帮助,因为 MemoryError:Unable 分配...
所以我决定使用 np.memmap。
我的阵列形状如下:
#print(arrayA.shape) (29097, 280, 212, 3)
#print(arrayB.shape) (16058, 280, 212, 3)
#print(arrayC.shape) (15412, 280, 212, 3)
#print(arrayD.shape) (21634, 280, 212, 3)
#print(arrayF.shape) (9477 , 280, 212, 3)
我的代码:
import glob
import numpy as np
npfiles= glob.glob("D:/mycode/*.npy")
npfiles.sort()
#print(npfiles)
# create a memory-mapped array
pred = np.memmap('memm4', dtype='uint8', mode='w+', shape=(91678,280,212,3))
print(pred.shape)
for i,npfile in enumerate(npfiles):
pred[i,:,:,:]=np.load(npfile)
np.save('D:/mycode/pred.npy',pred)
但它向我展示了这个问题“无法将形状 (29097,280,212,3) 中的输入数组广播到形状中
(280,212,3)
有人可以帮助我吗,谢谢
目前您正在将 3 维张量放入 4 维 1
i
变量包含从 0 到 4 的文件索引。因此 pred[i,:,:,:]
只有三个维度
但是您需要指出数组将存储在内存中的位置。
last_index = 0
for npfile in npfiles:
temporary_array = np.load(npfile)
pred[last_index:last_index+ len(temporary_array),:,:,:] = temporary_array
last_index += len(temporary_array)
您可能还想尝试 hdf5 / 之类的东西,它可以让您轻松存储大型数组。
我有5个大型numpy数组,我想将它们合并成一个numpy数组。 使用 np.concatenate 没有帮助,因为 MemoryError:Unable 分配... 所以我决定使用 np.memmap。 我的阵列形状如下:
#print(arrayA.shape) (29097, 280, 212, 3)
#print(arrayB.shape) (16058, 280, 212, 3)
#print(arrayC.shape) (15412, 280, 212, 3)
#print(arrayD.shape) (21634, 280, 212, 3)
#print(arrayF.shape) (9477 , 280, 212, 3)
我的代码:
import glob
import numpy as np
npfiles= glob.glob("D:/mycode/*.npy")
npfiles.sort()
#print(npfiles)
# create a memory-mapped array
pred = np.memmap('memm4', dtype='uint8', mode='w+', shape=(91678,280,212,3))
print(pred.shape)
for i,npfile in enumerate(npfiles):
pred[i,:,:,:]=np.load(npfile)
np.save('D:/mycode/pred.npy',pred)
但它向我展示了这个问题“无法将形状 (29097,280,212,3) 中的输入数组广播到形状中 (280,212,3) 有人可以帮助我吗,谢谢
目前您正在将 3 维张量放入 4 维 1
i
变量包含从 0 到 4 的文件索引。因此 pred[i,:,:,:]
只有三个维度
但是您需要指出数组将存储在内存中的位置。
last_index = 0
for npfile in npfiles:
temporary_array = np.load(npfile)
pred[last_index:last_index+ len(temporary_array),:,:,:] = temporary_array
last_index += len(temporary_array)
您可能还想尝试 hdf5 / 之类的东西,它可以让您轻松存储大型数组。