python - 在python中交换numpy数组中的两行
问题描述
如何交换二维 NumPy 数组的第 x 行和第 y 行?x & y 是用户提供的输入。假设 x = 0 & y =2 ,输入数组如下:
a = [[4 3 1]
[5 7 0]
[9 9 3]
[8 2 4]]
Expected Output :
[[9 9 3]
[5 7 0]
[4 3 1]
[8 2 4]]
我尝试了多种方法,但没有得到预期的结果。这是我尝试过的:
a[x],a[y]= a[y],a[x]
output i got is:
[[9 9 3]
[5 7 0]
[9 9 3]
[8 2 4]]
请提出我的解决方案有什么问题。
解决方案
将索引作为一个整体:
a[[x, y]] = a[[y, x]]
用你的例子:
a = np.array([[4,3,1], [5,7,0], [9,9,3], [8,2,4]])
a
# array([[4, 3, 1],
# [5, 7, 0],
# [9, 9, 3],
# [8, 2, 4]])
a[[0, 2]] = a[[2, 0]]
a
# array([[9, 9, 3],
# [5, 7, 0],
# [4, 3, 1],
# [8, 2, 4]])
推荐阅读
- javascript - ReactJS 从弹出窗口获取数据并在父组件上使用
- javascript - 格式化来自数组中 Web API 调用的响应返回
- gnuplot - 抽动和标签中的重叠字母gnuplot 5.4
- ruby-on-rails - 自己的奇怪行为
- python - Oct2Py 使用返回多个参数的 Psychtoolbox 函数给出“TypeError: cannot unpack non-iterable float object”
- python - lightGBM 中的 predict_proba
- prestashop - 从命令行更新 Prestashop 中的产品数量
- javascript - 根据另一个选择值(多选)更改选择选项 - Jquery
- django - Django:user.save() 不保存更新到扩展
- ios - Alamofire post requestString 无法获得正确的令牌响应