numpy阵列中这两种切片有什么区别?

2024-04-25 04:32:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有numpy阵列

X=array([[0, 44.0, 72000.0],
   [2, 27.0, 48000.0],
   [1, 30.0, 54000.0],
   [2, 38.0, 61000.0],
   [1, 40.0, 63777.0],
   [0, 35.0, 58000.0],
   [2, 38.0, 52000.0],
   [0, 48.0, 79000.0],
   [1, 50.0, 83000.0],
   [0, 37.0, 67000.0]], dtype=object)

我想提取整个第3列,我像这样切片X[:,2:3],但它不是scikit学习拟合^转换函数给出了一个错误,但当我像这样切片X[:,2]它工作得很好。 X[:,2:3]给出输出

array([[72000.0],
       [48000.0],
       [54000.0],
       [61000.0],
       [63777.77777777778],
       [58000.0],
       [52000.0],
       [79000.0],
       [83000.0],
       [67000.0]], dtype=object)

X[:,2]给出输出

array([72000.0, 48000.0, 54000.0, 61000.0, 63777.77777777778, 58000.0,
       52000.0, 79000.0, 83000.0, 67000.0], dtype=object)

Tags: 函数numpyobject错误切片scikitarraydtype
1条回答
网友
1楼 · 发布于 2024-04-25 04:32:08

不同之处在于阵列的形状:

代码

from numpy import *

X=array([[0, 44.0, 72000.0],
         [2, 27.0, 48000.0],
         [1, 30.0, 54000.0],
         [2, 38.0, 61000.0],
         [1, 40.0, 63777.0],
         [0, 35.0, 58000.0],
         [2, 38.0, 52000.0],
         [0, 48.0, 79000.0],
         [1, 50.0, 83000.0],
         [0, 37.0, 67000.0]], dtype=object)

X1 = X[:,2:3]
X2 = X[:,2]

print(X1.shape)
print(X2.shape)

结果:

(10L, 1L)

(10L,)

如您所见,形状不同。你知道吗

Sklearn通常使用(number,)格式。 考虑阅读每个sklearn算法/方法的文档,并检查他们网站上的示例。你知道吗

相关问题 更多 >