繁体   English   中英

如何在 numpy 数组中插入

[英]How to insert in numpy array

有两个矩阵。 第一个是维度为(85,7794,64)的数据矩阵,第二个是维度为(85,7794)的闪烁。 我必须在下面代码中提到的特定条件下根据闪烁矩阵提取部分数据。 条件性能毫无疑问,但是当我尝试将提取的数据(维度为(20,64))插入到维度为(85,3600,64)(3600)的预定义存储矩阵时,因为有 180 个维度的数据的 (20,64) 应该从数据中提取,所以 180*20 = 3600 ) 它给出了下面提到的错误。 谢谢,如果有人可以帮助解决它。

错误:

ValueError:无法将输入数组从形状(20,64)广播到形状(0,64)

storage_matrix = np.zeros((85,3600,64))


for i in range(0,84):    
    for j in range(0,7793):
        t = j + 1
        s = j + 20
        if Flashing[i,j] == 0 and Flashing[i,t] == 1:
            storage_matrix[i,j:s,:] = data[i,j:s,:]
            

您的内循环范围太大。 考虑在内循环中当j>3600时会发生什么。

当您说storage_matrix[i, j:s, :]并且如果j>3600时,代码会中断,因为storage_matrix的中间维度的大小是 3600。这将返回一个空数组。 因此,您在错误消息中看到零维度。

不确定您在这里尝试做什么,但也许您的意思是 3600 在您的内部循环中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM