我正在尝试创建一个指定dtype的numpy标量.我知道我可以做,x = numpy.int16(3)但是我不提前知道dtype.
如果我想要一个阵列那么
dtype = int
x = numpy.array(3, dtype=dtype)
Run Code Online (Sandbox Code Playgroud)
会这样做的,所以我对此寄予厚望
x = numpy.generic(3, dtype=dtype)
Run Code Online (Sandbox Code Playgroud)
但是无法创建一个实例numpy.generic.
有任何想法吗?
正如所评论的,所接受的答案通常不适用于所有数据类型,例如 timedeltas:
In [6]: d = np.dtype("timedelta64[10m]")
In [7]: d.type(3)
Out[7]: numpy.timedelta64(3)
Run Code Online (Sandbox Code Playgroud)
要始终获得正确答案,请使用以下命令:
In [8]: np.array(3, d)[()]
Out[8]: numpy.timedelta64(3,'10m')
Run Code Online (Sandbox Code Playgroud)
以下将创建一个标量x的dtype:
In [18]: val = x.dtype.type(3)
In [19]: val
Out[19]: 3
In [20]: type(val)
Out[20]: numpy.int32
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4955 次 |
| 最近记录: |