【发布时间】:2021-01-09 14:39:18
【问题描述】:
Python 3.8、Numpy 1.18.1
代码有行,
L = H.flatten(0)
这显然会引发以下错误,
ValueError:为数组排序检测到非字符串对象。请 改为传入“C”、“F”、“A”或“K”
现在我已将行更改为,
L = H.flatten('C')
并且代码运行良好,不幸的是,如果我将其更改为,它也运行良好(但结果不同),
L = H.flatten('F')
我的工作假设是最初的意图是行主要(C 风格),因为在 HPC 之外没有多少人使用 Fortran。
我想确定一下,到目前为止,我的搜索还没有出现任何结果。
那么, numpy 的 flatten(0) 在使用时做了什么?
【问题讨论】:
-
在不知道该代码的来源的情况下,我认为我们无法为您提供帮助。可能是错字。或者可能有一段时间
flatten忽略了这样的参数,或者将0解释为默认值。它是编译后的代码,因此参数的处理不会/并不总是像纯 Python 函数那样表现。因此,如果有变化,很可能是 API 清理,而不是功能变化。
标签: python numpy flatten legacy