创建NumPy阵列时无法理解数据类型

时间:2018-01-12 18:42:03

标签: arrays numpy

我正在尝试创建一个2 * 3 numpy数组,如下所示:

x_sample= np.array([31000,28.69,7055.47],[79000,3.9,16933.26]);

但我明白了:

TypeError: data type not understood

为什么我收到错误?

3 个答案:

答案 0 :(得分:3)

两个列表中缺少括号。

x_sample= np.array([[31000,28.69,7055.47],[79000,3.9,16933.26]])

编写dtype参数的方式是接收值[79000,3.9,16933.26],显然不能将其解释为有效的NumPy数据类型并导致错误。

答案 1 :(得分:0)

你可以尝试

np.vstack(([31000,28.69,7055.47],[79000,3.9,16933.26]))

答案 2 :(得分:0)

如果在TypeError: data type not understood参数中定义的名称不是dtype类型,则尝试创建结构化数组时也会发生str

考虑以下最小示例:

numpy.array([], dtype=[(name, int)])
  • 如果type(name) is unicode
  • 在Python 2中失败
  • 如果type(name) is bytes
  • 在Python 3中失败
  • 如果type(name) is str,则在Python 2和3中成功

(已通过Python 2.7 + numpy 1.14和Python 3.6 + numpy 1.15进行测试)