gpt4 book ai didi

python - 有没有一种有效的方法可以将 numpy.ndarray 转换为列表?

转载 作者:太空狗 更新时间:2023-10-30 02:22:34 25 4
gpt4 key购买 nike

我有一个 Y 形式的数组(这只是一个例子,我有大量这种形式的数据)。该数组是通过使用 numpy 的 vstack 和 hstack 形成的(即我不想更改我获取此数组的方式,因为我已经通过一些复杂的操作获得了它):

 Y=array([[1,  1,2],
[1, 2,0],
[-1, 3,1],
[-1, 2,2]])
y=[1,1,-1,-1]
Y1=list(Y)

现在我将数据输入到一个 libsvm 函数中,这个库期望输入参数是字典、列表或元组形式。因此,相同的代码是:

prob=svm_problem(y, Y1)

上面的函数抛出一个错误“xi should be a dictionary, list or tuple”。我知道的另一种方法是将 Y 转换为迭代列表。实现方式是:

Y1=[] 
for i in range(0, Y.shape[0]):
Y1.append(list(Y[i])

上述方法效果很好,但考虑到我拥有的大量数据,速度很慢。有没有更快的方法来完成同样的事情?

最佳答案

>>> Y.tolist()
[[1, 1, 2], [1, 2, 0], [-1, 3, 1], [-1, 2, 2]]

我不确定这是否会比大型二维数组快得多。将此类数组转换为简单的列表列表本质上是一种低效操作——这就是您首先使用 NumPy 的原因。

关于python - 有没有一种有效的方法可以将 numpy.ndarray 转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876172/

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