gpt4 book ai didi

python - 如何将数组从 dtype=object 转换为 dtype=np.int

转载 作者:行者123 更新时间:2023-12-01 09:05:00 28 4
gpt4 key购买 nike

目前我得到的数组是

arr = array([array([ 2,  7,  8, 12, 14]), array([ 3,  4,  5,  6,  9, 10]),
array([0, 1]), array([11, 13])], dtype=object)

如何将其转换为 array([[ 2, 7, 8, 12, 14], [ 3, 4, 5, 6, 9, 10], [0, 1], [11, 13]])

我尝试了arr.astype(np.int),但失败了

最佳答案

数组数组的dtype将始终是object。这是不可避免的,因为使用 NumPy 只能将非锯齿状 n 维数组保存在连续的内存块中。

请注意,您的组成数组已经是 int dtype:

arr[0].dtype  # dtype('int32')

还请注意,您的逻辑适用于非锯齿数组数组:

arr = np.array([np.array([ 2,  7,  8]),
np.array([ 3, 4, 5])], dtype=object)

arr = arr.astype(int)

arr.dtype # dtype('int32')

事实上,在这种情况下,数组的数组被折叠成一个单个数组:

print(arr)

array([[2, 7, 8],
[3, 4, 5]])

对于使用锯齿状数组进行计算,您可能会看到相对于列表列表的一些性能优势,但好处可能是有限的。另请参阅How do I stack vectors of different lengths in NumPy?

关于python - 如何将数组从 dtype=object 转换为 dtype=np.int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52136625/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com