为什么numpy.find\u common\u类型需要两个单独的列表?

为什么numpy.find\u common\u类型需要两个单独的列表?,numpy,Numpy,获取两个列表:数组类型和标量类型。文档称返回值为: 忽略标量类型的数组类型的最大值,除非标量类型的最大值是另一种类型() 我真的不明白这意味着什么,所以我试了一些例子。以下是一些似乎与上述描述相矛盾的情况: >>> np.find_common_type(['int16', 'int32'], ['uint64']) dtype('int32') >>> np.find_common_type(['int32', 'int64'], ['uint32'])

获取两个列表:
数组类型
标量类型
。文档称返回值为:

忽略标量类型的数组类型的最大值,除非标量类型的最大值是另一种类型()

我真的不明白这意味着什么,所以我试了一些例子。以下是一些似乎与上述描述相矛盾的情况:

>>> np.find_common_type(['int16', 'int32'], ['uint64'])
dtype('int32')

>>> np.find_common_type(['int32', 'int64'], ['uint32'])
dtype('int64')
上面,
scalar\u类型
具有
kind=“u”
(无符号),但它不会覆盖具有
kind=“i”
数组类型


那么,采用两个参数有什么意义呢?我在野外看到的真正用法只是将
[]
作为第二个参数。

似乎当文档说“除非最大数量的标量类型是另一种类型”时,他们实际上的意思是“除非最大数量的标量类型是更大的类型”,其中“更大”以与
dtype.kind
页面上不同的顺序定义。顺序在代码中:

因此,
scalar\u类型
会产生影响,例如,当它包含int类型,但
array\u类型
仅包含布尔或无符号类型时。仅仅“与众不同”是不够的——在上面的列表中,它必须更靠右

['b', 'u', 'i', 'f', 'c', 'S', 'U', 'V', 'O', 'M', 'm']