from numpy import genfromtxt, linalg, array, append, hstack, vstack
#Euclidean distance function
def euclidean(v1, v2):
dist = linalg.norm(v1 - v2)
return dist
#get the .csv files and eliminate heading and unused columns from test
BMUs = genfromtxt('BMU3.csv', delimiter=',')
data = genfromtxt('test.csv', delimiter=',')
data = data[1:, :-2]
i = 0
for obj in data:
D = 0
for BMU in BMUs:
Dist = append(euclidean(obj, BMU[: -2]), BMU[-2:])
D = hstack(Dist)
Map = vstack(D)
#iteration counter
i += 1
if not i % 1000:
print (i, ' of ', len(data))
print (Map)
を反復マトリックス構築物である:[-2]Pythonは私がしたいどのようなアレイ
- はBMU(ユークリッド(OBJ、BMUからデータ
- 計算距離からオブジェクトを取ります距離)
- 追加BMUアレイ
- の最後の2つの項目がデータ・オブジェクト(D = hstack(ディスト)からすべての距離に加えて、すべてのBMUの最後の2つの項目を含む2D行列を作成する)
- は、データ内のオブジェクトの数と等しい長さの行列の配列を作成します。 (地図= vstack(D))
ここでの問題、または少なくとも私が問題だと思うのは、hstackとvstackは配列のタプルを1つの配列ではなく入力することです。 List.append()をリストとして使うのと同じように、悲しいことに私は初心者ですし、それをどうやってやるのか分かりません。
すべてのヘルプは素晴らしいだろう、事前にあなたに感謝:)
は、どうもありがとうございました、あなたのアドバイスをお待ちしております:) –
'shape'(と' dtype'は)何 'BMU'と' data'のために?これは、複製したサンプルを使用してコードをテストする方が簡単です。そうしないと私は推測して( 'データ= np.arange(24).reshape(12,2)'のような)サンプルアレイを構成する必要があります。 – hpaulj
(243 7)BMUs.shape (19219、5)data.shape –