【发布时间】:2026-01-23 22:25:01
【问题描述】:
我的问题有点简单,但我似乎找不到答案。
我的代码中有以下行可以正常工作:
Uniquesample = np.matrix([[ 1. , 0. ],
[ 2. , -106.965],
[ 3. , -83.835],
[ 4. , 12.5 ],
[ 5. , -141.6 ],
[ 6. , -17.25 ],
[ 7. , -94.785],
[ 8. , -26.785],
[ 9. , -125.835],
[ 10. , 6.865],
[ 11. , 16.23 ],
[ 12. , 61.45 ],
[ 13. , 42.625],
[ 14. , -163.655],
[ 15. , -116.3 ],
[ 16. , 15.82 ],
[ 17. , -166.055],
[ 18. , 90.025],
[ 19. , 14.215],
[ 20. , 82.465]])
L, W = Uniquesample.shape
ModelNumber = 8
Members = np.zeros((L,ModelNumber*W))
seq=[4, 7, 9, 2, 15, 16, 19]
i=0
Count = [7]
for j in seq:
Members[:Count[i]:,W*i:W*(i+1)] = Uniquesample[j]
Ps:Uniquesample 是一个 800 x 2 矩阵,所以为了简单起见,我只放了前 20 行。 我尝试使用“列表理解”将 for 循环更改为另一种格式:
Members[:Count[i]:,W*i:W*(i+1)] = [Uniquesample[j] for j in seq]
但它不起作用。我收到以下错误:“ValueError: setting an array element with a sequence。请求的数组将超过最大维数2。”
事情是这样的。我是否将代码正确“翻译”为列表理解格式?
非常感谢
【问题讨论】:
-
您能给我们看一个 sn-p / 演示
Members / UniqueSample是什么,以便了解您想要做什么吗? -
您能否提供更多关于
seq、Uniquesample和Members中的内容的上下文?我认为Uniquesample是一个列表,而j您正在尝试访问索引? -
:Count[i]:只是分割:Count[i]的一种混淆方式,对吧?那是基础 Python array.array、numpy.ndarray、pandas DataFrame 吗? (编辑:你澄清它是一个 np.matrix) -
大家好,我更新了问题,提供了有关代码的更多信息。很抱歉之前丢失了。
-
无法重现。我使用
seq=[4, 7, 9, 2, 15, 16, 19],并用列表理解语句替换了for循环......它可以正常运行
标签: python matrix list-comprehension slice