使用数组设置元素错误添加列表时的python

时间:2017-11-08 14:52:45

标签: python

编写python程序添加列表,第一个列表是10 * 3 * 11列表(3维),第二个列表也是10 * 3 * 11列表,所有元素都是0,添加它们,使用numpy :

data_split_count = 10
cluster_number = 3
total_center_list = [[[[0] for i in range(11)] for j in range(cluster_number)] for kj in range(data_split_count)]
print("1 len total center list")
print(len(total_center_list))


total_center_data_list = minibatchkmeansClustering_no_gender(data_list)


print("total center list")

print(len(total_center_data_list))
print("total center list 0")
print(len(total_center_data_list[0]))
print("total center list 0 0")
print(len(total_center_data_list[0][0]))
print(total_center_data_list[0][1])

print("sum total center list")

temp_test = numpy.array([total_center_data_list,total_center_list])
total_center_list = temp_test.sum(axis = 0)

print(len(total_center_list))

当runnung,它显示:

1 len total center list
10
total center list
10
total center list 0
3
total center list 0 0
11
[ 0.07459313  0.05333272  0.01219305  0.32307944  0.16194127  0.00409273
  0.34603601  0.33625275  0.06253664  0.1693817   0.08579227]
sum total center list
File "F:/MyDocument/F/My Document/Training/Python/PyCharmProject/FaceBookCrawl/FB_group_user_stability.py", line 36, in dist_cal
temp_test = numpy.array([total_center_data_list,total_center_list])
ValueError: setting an array element with a sequence
你可以告诉我原因以及如何解决它

1 个答案:

答案 0 :(得分:0)

如果您想使用numpy,它会对数据数组进行操作。您必须使用 asarray 将列表转换为数组。然后你可以使用“+”在元素方面添加两个数组。

import numpy as np


list1=range(3*5*11)                           # list1 = your total_center_list
a1=np.asarray(list1).reshape((3,5,11))        # converted to numpy array, reshaped to match your dimensions
print a1

list2=range(3*5*11)       # list2 = your total_center_data_list
a2=np.asarray(list2).reshape(3,5,11)

a3=a1+a2                  # your sum array
print a3.shape            # checks dimensions