Python numpy';s展平(0)怎么办?

Python numpy';s展平(0)怎么办?,python,numpy,flatten,legacy,Python,Numpy,Flatten,Legacy,Python 3.8、Numpy 1.18.1 代码有一行 L=H.flatten(0) 这显然会引发以下错误 ValueError:为数组排序检测到非字符串对象。请 改为输入“C”、“F”、“A”或“K” 现在我把线路改成了 L=H.flatten('C') 代码运行良好,不幸的是,如果我将其更改为 L=H.flatten('F') 我的工作假设是,最初的意图是row-major(C-style),因为HPC以外的很多人都在使用Fortran 不过我想确定一下&到目前为止,我的搜索还没有找到任

Python 3.8、Numpy 1.18.1

代码有一行

L=H.flatten(0)

这显然会引发以下错误

ValueError:为数组排序检测到非字符串对象。请 改为输入“C”、“F”、“A”或“K”

现在我把线路改成了

L=H.flatten('C')

代码运行良好,不幸的是,如果我将其更改为

L=H.flatten('F')

我的工作假设是,最初的意图是row-major(C-style),因为HPC以外的很多人都在使用Fortran

不过我想确定一下&到目前为止,我的搜索还没有找到任何结果


那么,numpy的展平(0)在使用时做了什么?

我假设您正在讨论调用展平()时的默认顺序选项是什么

如果是,则默认情况下,当在没有任何参数的情况下调用flatte()时,它在默认情况下等价地调用flatte('C')。你可以在这里看到它

在numpy1.8中,行主样式(C样式)是默认的实现

在此之前的任何版本都必须手动指定是否在参数输入中展平行或列

我认为没有任何详细的理由来解释为什么flatte('C')是默认值。这只是为了简化

如果是关于为什么展平(0)不起作用,那只是因为展平不接受文档中指定的“C”、“F”、“A”、“K”选项之外的任何其他输入

编辑 对不起,我误解了这个问题 numpy.ndarray.flatte()只是可以在这里找到的C PyArray_flatte的别名


我假设您正在讨论调用flatte()时的默认顺序选项是什么

如果是,则默认情况下,当在没有任何参数的情况下调用flatte()时,它在默认情况下等价地调用flatte('C')。你可以在这里看到它

在numpy1.8中,行主样式(C样式)是默认的实现

在此之前的任何版本都必须手动指定是否在参数输入中展平行或列

我认为没有任何详细的理由来解释为什么flatte('C')是默认值。这只是为了简化

如果是关于为什么展平(0)不起作用,那只是因为展平不接受文档中指定的“C”、“F”、“A”、“K”选项之外的任何其他输入

编辑 对不起,我误解了这个问题 numpy.ndarray.flatte()只是可以在这里找到的C PyArray_flatte的别名


Hi Chass我知道默认设置,也知道
Flatte(0)
不起作用(参见OP)。我想问的是
Flatte(0)
在使用时做了什么。哦,如果是这样的话,很抱歉,我误解了这个问题。numpy.ndarray.flatte()只是C PyArray_flatte的别名,可以在这里找到。嗨,我知道默认设置&也知道
flatte(0)
不起作用(请参见OP)。我想问的是
flatte(0)
在使用时做了什么。哦,如果是这样,对不起,我误解了这个问题。numpy.ndarray.flatte()只是C PyArray_flatte的别名,可以在这里找到,但不知道代码的来源,我认为我们无法帮助您。可能是打字错误。或者有一段时间,
flatte
忽略了这样一个参数,或者将
0
解释为默认值。它是编译代码,因此参数的处理并不总是像纯Python函数那样。因此,如果有更改,很可能是API清理,而不是函数更改。如果不知道代码的来源,我认为我们无法帮助您。可能是打字错误。或者有一段时间,
flatte
忽略了这样一个参数,或者将
0
解释为默认值。它是编译代码,因此参数的处理并不总是像纯Python函数那样。所以,如果有变化,很可能是API清理,而不是函数的变化。