【发布时间】:2019-07-31 11:40:17
【问题描述】:
numpy.array(value) 计算结果为真,如果值为 int、float 或 complex。结果似乎是一个无形的数组(numpy.array(value).shape 返回())。
像numpy.array(value).reshape(1) 那样重塑上面的形状可以正常工作,numpy.array(value).reshape(1).squeeze() 会反转它并再次导致无形数组。
这种行为背后的原因是什么?这种行为存在哪些用例?
【问题讨论】:
-
你从一个标量中得到一个标量。这有什么不合理的?
-
另外,squeeze 的调用缺少括号
-
如果你不想得到一个标量,你可以通过
ndmin=1。 -
按照我的理解,标量不是数组。但是
type(np.array(11))是numpy.ndarray。我的问题不是我不明白什么是标量或数组是什么,而是 numpy 给了一个标量类型数组。 -
它是一个 0D 数组,不是无形的,形状是零长度元组
()。没有什么不合逻辑的。例如,如果您正在编写一个希望能够处理数组和标量的函数,它也非常有用。
标签: numpy