python – 数值数组的Numpy对象数组

前端之家收集整理的这篇文章主要介绍了python – 数值数组的Numpy对象数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想用dtype = np.object创建一个数组,其中每个元素都是一个数字类型的数组,例如int或float.例如:

  1. >>> a = np.array([1,2,3])
  2. >>> b = np.empty(3,dtype=np.object)
  3. >>> b[0] = a
  4. >>> b[1] = a
  5. >>> b[2] = a

创造我想要的东西:

  1. >>> print b.dtype
  2. object
  3. >>> print b.shape
  4. (3,)
  5. >>> print b[0].dtype
  6. int64

但我想知道是否没有办法在一行中写入第3行到第6行(特别是因为我可能想要连接100个数组).我试过了

  1. >>> b = np.array([a,a,a],dtype=np.object)

但这实际上将所有元素转换为np.object:

  1. >>> print b.dtype
  2. object
  3. >>> print b.shape
  4. (3,)
  5. >>> print b[0].dtype
  6. object

有没有人有任何想法如何避免这种情况?

最佳答案
它不是很漂亮,但……

  1. import numpy as np
  2. a = np.array([1,3])
  3. b = np.array([None,a])[1:]
  4. print b.dtype,b[0].dtype,b[1].dtype
  5. # object int32 int32

猜你在找的Python相关文章