1
比方说,我有两个阵列,如:numpy的形状方法返回错尺寸
a = array([ 0.36981727, 0.06066488, 0.73031016])
b = array([[ 0.12375904, 0.11647815, 0.56665118],
[ 0.9421819 , 0.58797789, 0.26831203],
[ 0.25769 , 0.02517343, 0.76701222]])
其中a
每个元素对应于B的一个阵列。现在,为了排序“一”,同时也跟踪其相应向量的b
我做的:
ziped_and_sorted = np.array(sorted(zip(a,b), key=operation.itemgetter(0), reverese =True),'object')
然后我需要再次拆分a和b,因此:
a = ziped_and_sorted[:,0]
In [158]: a
Out[158]: array([0.369817272838, 0.0606648844006, 0.730310164248], dtype=object)
b = ziped_and_sorted[:,1]
In [157]: b
Out[157]:
array([[ 0.12375904 0.11647815 0.56665118],
[ 0.9421819 0.58797789 0.26831203],
[ 0.25769 0.02517343 0.76701222]], dtype=object)
的问题是b.shape
返回(3,)
而不是(3,3)
。这很重要,因为我需要与b
进行矩阵乘法运算,并且问题导致出现dimension mismatched
错误。
P.S:如果您有更好的解决方案,请提出建议。
谢谢,只是为了好奇心,如何解决问题的形状?没有任何循环 – Moj
而不是'idx = np.argsort(a)[:: - 1]'你也可以做'idx = np.argsort(-a)'' – askewchan