0
私はいくつかの列を持つcsvファイルを持っています。文字列のデータフレーム列をリストに変換する
列の一つは、「{0,4,5}」
これらは、空間内の点の座標である形式の文字列です。
私はその列を取り、それらすべての点でkmeansを実行したいと思います。
達成したいのは形状(500,3)(ポイント数、ポイントを定義するフィーチャ)のnp.arrayであり、それは私が達成したいことですkmeansに渡す。
しかし、私は失敗します。
df = pd.read_csv(filename, header=None, names=['a', 'b', 'c'], delimiter=',',
converters={'b': lambda x : np.array(list(map(float, x[1:-1].split(',')))) })
df.drop('a', axis=1, inplace=True)
df.drop('c', axis=1, inplace=True)
X = df['b'].values
km = KMeans(init='k-means++', n_clusters=5, n_init=10)
km.fit(X) # here it fails with "ValueError: setting an array element with a sequence."
X.shape gives (500,) # I would expect it to be 500, 3
X[0].shape gives (3,)
print(np.unique(list(map(len, X)))) gives [3] so all the entries have three points
あなたの質問が十分に解決された場合は、最も有益な回答を[受け入れる](https://stackoverflow.com/help/someone-answers)することができます。 –