と、Iは、周波数とベクトルの集合の和(numpyのベクター)は+ = numpy.arrayオブジェクト変更次のコードでは、元のオブジェクト
def calculate_means_on(the_labels, the_data):
freq = dict();
sums = dict();
means = dict();
total = 0;
for index, a_label in enumerate(the_labels):
this_data = the_data[index];
if a_label not in freq:
freq[a_label] = 1;
sums[a_label] = this_data;
else:
freq[a_label] += 1;
sums[a_label] += this_data;
と仮定the_data
(numpyの 'の両方を計算しようとしていマトリックス ')は、元々ある:上記のコードを実行した後
[[ 1. 2. 4.]
[ 1. 2. 4.]
[ 2. 1. 1.]
[ 2. 1. 1.]
[ 1. 1. 1.]]
、the_data
になる:
[[ 3. 6. 12.]
[ 1. 2. 4.]
[ 7. 4. 4.]
[ 2. 1. 1.]
[ 1. 1. 1.]]
これはなぜですか?私はそれをsums[a_label] = sums[a_label] + this_data;
に変更すると、それが予想どおりに動作するように、sums[a_label] += this_data;
という行に推測しました。すなわちthe_data
は変更されません。
[こちら](http://stackoverflow.com/questions/12905338/python-difference-between-x-x1-and-x-1)を参照してください。 –