试图给矩阵赋值时出错,显示维度有问题。

问题描述 投票:0回答:1

我用命令做了一个大小为6*6*51的numpy数组。

matrix = np.zeros((6,6,51))

但是当我写一个循环,让一个6元素的数组被放置在 matrix[i][:][j] 它说

ValueError: 无法将输入数组从形状(6)广播到形状(51)。

我到底做错了什么?

python arrays numpy indexing numpy-ndarray
1个回答
0
投票
import numpy as np
a = np.zeros((6,6,51))

你的索引不正确。你的订阅应该包括所有的维度。

a[i][:] 基本上与 a[i] 然后 ja[i][:][j] 是对第二个维度的索引。

In [14]: b = a[1][:]

In [15]: b.shape
Out[15]: (6, 51)
In [16]: c = a[1][:][1]

In [17]: c.shape
Out[17]: (51,)

使用 a[i,:,j] 的订阅。

In [20]: a[1,:,1] = np.arange(6)
In [21]: a[1,:,1]
Out[21]: array([ 0.,  1.,  2.,  3.,  4.,  5.])

Numpy索引

© www.soinside.com 2019 - 2024. All rights reserved.