【发布时间】:2020-07-23 09:04:14
【问题描述】:
我有一个函数,它给定两个 numpy 数组,将它们转换为字典,如下所示
def seggregate_based_on_y(X,y):
dictionary={}
for index in range(len(y)):
if y[index] in dictionary.keys():
np.append(dictionary[y[index]],X[index])
else:
dictionary[y[index]]=np.array([X[index]])
return dictionary
用于以下输入
X=np.array([[1,1],[2,2],[3,3],[4,4],[5,5]])
y=np.array([2,3,2,3,4])
d=seggregate_based_on_y(X,y)
print(d)
我希望 'd' 为 {2: array([[1, 1],[3,3]]), 3: array([[2, 2],[4,4]]), 4: array([[5, 5]])},但我得到的 'd' 为 {2: array([[1, 1]]), 3: array([[2, 2]]), 4: array([[5, 5]])},即 if 语句不起作用。应该怎么做?
【问题讨论】:
-
见docs.scipy.org/doc/numpy/reference/generated/numpy.append.html
append()返回一个它不工作的数组的副本。 -
@MarkMeyer 感谢您指出,我不知道。但是问题仍然存在,您知道是否有任何方法可以按预期获得上述结果
标签: python arrays numpy append