在矩阵上应用fromiter

2024-06-24 12:36:33 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我想在整个矩阵上应用函数,为什么fromiter失败?

>>> aaa = np.matrix([[2],[23]])
>>> np.fromiter( [x/2 for x in aaa], np.float)
array([  1.,  11.])

这很好,但是如果矩阵是2D,我会得到以下错误:

^{pr2}$

我可以用什么替代品? 我知道我可以为行和列编写2个循环,但这看起来很慢,不是pythonic。 谢谢。


Tags: 函数in替代品for错误np矩阵float
1条回答
网友
1楼 · 发布于 2024-06-24 12:36:33

迭代多维矩阵会迭代行,而不是单元格。要迭代每个值,请迭代aaa.flat。在

注意,fromiter(如文档所述)只创建一维数组,这就是为什么必须迭代单元格而不是行。如果您想创建其他形状的新矩阵,则必须重新塑造生成的一维数组。在

当然,在很多情况下,您根本不需要迭代。对于您的例子,您只需aaa/2将矩阵的每个元素除以2。在

相关问题 更多 >