【发布时间】:2021-03-03 04:15:41
【问题描述】:
我正在尝试创建一个指定 dtype 的 numpy 标量。我知道我可以做到,比如x = numpy.int16(3),但我事先不知道 dtype。
如果我想要一个数组,那么
dtype = int
x = numpy.array(3, dtype=dtype)
会做,所以我对
寄予厚望x = numpy.generic(3, dtype=dtype)
但是不能创建numpy.generic 的实例。
有什么想法吗?
【问题讨论】:
-
我不确定是什么问题。为什么
x = dtype(3)不做你想做的事? -
@DSM:严格来说,这并不适用。在 OP 的示例中,将创建
int(3)而不是numpy.int32(3)。这是否是一个问题,我不知道。 -
@NPE:我假设通过“指定的 dtype”,OP 已将所需的 dtype 放入
dtype;int将提供int,np.int16将提供np.int16。不过,我一定遗漏了一些东西,因为 OP 知道您可以调用类型对象(在第一行中),并且您可以将类型对象绑定到dtype。 -
@DSM,抱歉混淆,我有类似
a = np.eye(2, dtype=int)、b = np.zeros(2, dtype=a.dtype)的代码,所以a.dtype可以作为dtype 参数传递,但a.dtype(3)给出不可调用的错误。.type方法可以满足我的需要(“使 dtypes 可调用”)。