python - 如何在 Python 中更改二维数组的顺序
问题描述
大家好,我有一个非常简单的问题要问你,让我简要解释一下,更详细的解释请阅读下文。
我想订购我的二维数组,它是一个坐标数组。但是 k= np.sort(k,0) 对我不起作用,因为它会导致 y 值的洗牌。如何在不丢失 (x,y) 数组中的 y 值的情况下解决这个问题?
在上面你可以看到 np.sort() 的结果。它对所有列进行排序并打乱值,这使得数据无用。
这是我需要该订单的更长解释:
我有一个二维数组,它是 K-means 的中心
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)
推荐阅读
- pandas - 数据分析题-根据混合列计算年龄
- php - Laravel 不会发送 25 端口且未加密的邮件
- c# - C# Pinvoke 字符串
- java - 是否可以确定请求JSON中是否存在参数
- angular - 可观察类型中不存在 Angular 7 属性“共享”
- c# - 谷歌“GoogleWebAuthorizationBroker”显示错误重定向 uri 不匹配
- javascript - 如何在不删除父标签ckeditor的情况下删除文本
- python - 芹菜不作为守护进程运行
- phpspreadsheet - 如何使用phpspreadsheet锁定特定单元格
- macos - 哦,我在 OSX 上的 ZSH Docker 自动完成功能无法正常工作