[英]How can I change the order of a 2D Array in Python
大家好,我有一个非常简单的问题要问你,让我简短地解释一下,有关更详细的解释,请阅读下文。
我想订购我的二维数组,它是一个坐标数组。 但是 k= np.sort(k,0) 对我不起作用,因为它会导致 y 值的改组。 如何在不丢失 (x,y) 数组中的 y 值的情况下解决此问题?
在上面你可以看到 np.sort() 的结果。 它对所有列进行排序并重新排列值,这使得数据无用。
这是为什么我需要该订单的更长解释:
我有一个二维数组,它是 K 均值的中心
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);
我想用它们的 x 值对这个数组进行排序,因为我想在这样的 RBF 函数中使用它:
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);
rbfi = Rbf(centers[:, 0], centers[:, 1],function='gaussian')
u = rbfi(centers[:,0])
plt.plot(centers[:,0],u,'orange',linewidth=4)
plt.tick_params(labelcolor = 'white')
由于它是无序的,该函数随机取 2D 点并尝试在它们之间画一条线。
结果应该是这样的:
我假设您的意思是要保持索引不变。 如果这个假设是正确的,我会建议一个数据框,用“inplace=True”排序:
import dataframe as df
df = pd.DataFrame({'x': your_x_numpy_array, 'y': your_y_numpy_array})
df.sort_values(by=[your_index_of_choice],inplace = True)
这是我的答案类似于@Hayden Eastwood
import pandas as pd
df = pd.DataFrame({'x': centers[:,0], 'y': centers[:,1]})
df = df.sort_values(by='x')
centers = pd.DataFrame(df).to_numpy()
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.