【问题标题】:How can I identify numpy's integer type?如何识别 numpy 的整数类型?
【发布时间】:2017-03-18 19:39:50
【问题描述】:

识别numpy的array中的数据点是否为整数的最简单方法是什么?目前我使用numpy.dtype(x[i]).type返回数组x的元素i的类型,然后

`if numpy.dtype(x[i]).type is numpy.int*`

为此,* 可以是83264。但它也可能返回uint,因此这种if 方式可以返回False。我想知道是否存在一种简单的方法来识别它是否是整数,而不管确切的 int 类型是什么。那么浮动呢?

【问题讨论】:

  • numpy.dtype(x[i]) 还能用吗? x 是什么?如果是数字,我得到TypeError: data type not understood
  • 抱歉,试试x = np.array([1,2,3,4,6,7])np.dtype(x[0])
  • 直到 np.dtype 在数组标量上工作以检索类型

标签: python numpy


【解决方案1】:

你可以使用:

issubdtype(var, type)

用法:

numpy.issubdtype(var_to_check, np.integer)

更多信息在这里How to determine if a number is any type of int (core or numpy, signed or not)?

【讨论】:

    【解决方案2】:

    这可能会有所帮助(这可以有效地测试有符号整数,类似的fashion 'u' 将是无符号整数等):

    x[i].dtype.kind == 'i'
    

    【讨论】:

    【解决方案3】:

    使用任一:

     issubclass(x[i].dtype.type, np.integer)
    

     np.issubdtype(x[i].dtype, np.integer)
    

    您的np.dtype(x) 代码不太可能执行您想要的操作——它没有得到x 的dtype,但试图将x 解释为新dtype 的描述。如果你有一个可能不是 numpy 的对象,你想要一个 dtype,你可以使用np.asanyarray(x).dtype

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 2022-01-18
      • 1970-01-01
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多