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

标签 python arrays numpy

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

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

创建我想要的:

>>> print b.dtype
object

>>> print b.shape
(3,)

>>> print b[0].dtype
int64

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

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

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

>>> print b.dtype
object

>>> print b.shape
(3,)

>>> print b[0].dtype
object

有没有人知道如何避免这种情况?

最佳答案

它不是很漂亮,但是......

import numpy as np

a = np.array([1,2,3])
b = np.array([None, a, a, a])[1:]

print b.dtype, b[0].dtype, b[1].dtype
# object int32 int32

关于python - 数值数组的 Numpy 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273040/

相关文章:

python - sklearn make_scorer 函数的类型错误

python - celery -Django : Celery vs django management commands

python - 在OpenCv中从图像提取墙

python - 在 Altair 中手动计算箱线图须线

python - 如何清除图例中的 matplotlib 标签?

java - 添加两个小端字节数组

arrays - 在 2D numpy 数组的每个滚动窗口中获得最大值

arrays - seq<int> 和 array<int> 的区别

python - 如何使用列上的尾随行对同一列进行计算 | Pandas python

python - 如何以交互方式更新 matplotlib imshow() 窗口?