gpt4 book ai didi

python - 输出为数组或方括号时的区别

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:04 25 4
gpt4 key购买 nike

我试图了解这两个输出之间的区别(如果有的话)。

array([array([203., 164.,  87., ...,   1.,   1.,   0.]),
array([39., 44., 40., ..., 40., 30., 21.]),
array([152., 144., 133., ..., 36., 36., 36.])], dtype=object)

array([[ 0.,  0.,  5., ...,  0.,  0.,  0.],
[ 0., 0., 0., ..., 10., 0., 0.],
[ 0., 0., 0., ..., 16., 9., 0.],
...,
[ 0., 0., 1., ..., 6., 0., 0.],
[ 0., 0., 2., ..., 12., 0., 0.],
[ 0., 0., 10., ..., 12., 1., 0.]])

对我来说,这两个结构都是二维数组。但是由于某种原因,其中一个打印不同。

我正在尝试将第一个结构提供给复杂函数 (svm.SVC.fit)。第二个有效,但第一个无效:

setting an array element with a sequence

虽然它们对我来说似乎完全一样..

最佳答案

正如我在评论中指出的那样,它们不是都是二维数组。第一个是形状为 (N, ) 的一维数组。您正在尝试创建一个具有可变长度子数组的 numpy 数组。发生这种情况时,numpy 会将数组的类型强制转换为 object 并使其成为一维的。 您应该不惜一切代价避免这种情况,因为它首先会消除使用 numpy 的许多好处。

一种常见的方法是填充子数组,使它们的长度都是统一的,但无论你做什么,你都不应该将 numpy 与锯齿状数组一起使用。

关于python - 输出为数组或方括号时的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53659968/

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