【发布时间】:2018-01-19 03:00:19
【问题描述】:
情景
我已将 csv(以 \t 分隔)读入 Dataframe,现在需要采用 numpy 数组格式进行聚类而不更改类型
问题
到目前为止,根据尝试过的参考资料(如下),我未能按要求获得输出。我试图获取的两列值在 int64 / float64 中,如下所示
uid iid rat
0 196 242 3.000000
1 186 302 3.000000
2 22 377 1.000000
我目前只对 iid 和 rat 感兴趣,并将其传递给 Kmeans.fit() 方法,而其中也不包含 EPSILON。我需要以下格式
预期格式
[[242, 3.000000],
[302, 3.000000],
[22, 1.000000]]
不成功的尝试
X = values[:, 1:2]
Y = values[:, 2:3]
someArray = np.array([X,Y])
print someArray
并没有在执行时告别
[[[ 2.42000000e+02]
[ 3.02000000e+02]
[ 3.77000000e+02]
...,
[ 1.35200000e+03]
[ 1.62600000e+03]
[ 1.65900000e+03]]
[[ 3.00000000e+00]
[ 3.00000000e+00]
[ 1.00000000e+00]
...,
[ 1.00000000e+00]
[ 1.00000000e+00]
[ 1.00000000e+00]]]
到目前为止没有帮助的参考文献
编辑 1
试过np_df = np.genfromtxt('AllData.csv', delimiter='\t', unpack=True) 得到了这个
[[ nan 1.96000000e+02 1.86000000e+02 ..., 4.79000000e+02
4.79000000e+02 4.79000000e+02]
[ nan 2.42000000e+02 3.02000000e+02 ..., 1.36000000e+03
1.39400000e+03 1.65200000e+03]
[ nan 3.00000000e+00 3.00000000e+00 ..., 2.00000000e+00
1.92803605e+00 1.00000000e+00]]
【问题讨论】:
-
values.iloc[:, 1:].values? -
文件是逗号还是制表符分隔?
-
@ayhan 请检查预期的格式,它只打印第 1 列和第 2 列
-
@BenT 已经提到,\t 或 Tab 分隔
-
我看不出预期格式和我的建议输出之间有任何区别(除了第三行中的 22,我认为这是一个错误)。
标签: python arrays pandas numpy