python - 似乎无法在 Python 中交换记录数组中的行
问题描述
似乎无法交换表中的两行。如您所见,位置一成功复制到位置 0,但反之则不然?每个位置的数据都在交换之前存储,所以它不像计算机正在获取新的覆盖数据并将其放入新位置。
代码:
```
import numpy as np
name = ['Alice1', 'Bob', 'Cathy', 'Doug']
age = [25, 45, 100, 19]
weight = [55.0, 85.5, 68.0, 61.5]
data = np.zeros(4, dtype={'names': ('name', 'age', 'weight'), 'formats': ('U10', 'i4', 'f8')})
data['name'] = name
data['age'] = age
data['weight'] = weight
pos0 = data[0]
pos1 = data[1]
data[0] = pos1
data[1] = pos0
print(data)
```
输出:
```
ORIGIONAL LIST: [('Alice1', 25, 55. ) ('Bob', 45, 85.5) ('Cathy', 100, 68. )
('Doug', 19, 61.5)]
NEW SWAPPED LIST: [('Bob', 45, 85.5) ('Bob', 45, 85.5) ('Cathy', 100, 68. )
('Doug', 19, 61.5)]
```
解决方案
你可以使用numpy.copy:
data[0], data[1] = data[1], data[0].copy()
推荐阅读
- linux - Linux cp 命令,临时命名文件直到复制完成将整个文件复制到目标
- linux - Extract next word in a space-delimited string
- sql - 在不使用许多临时表的情况下计算多列然后加入 PostgreSQL
- ios - 如何在 Swift 中使用 MailCore2 回复电子邮件?
- angular - 导入AngularFireAuth的正确方法是什么?
- django - 如何在 Django 中检查“MultiSelectField”是否为空?
- google-cloud-dataflow - 运行 WordcCount 示例 DataFlow Runner
- postgresql - 尝试创建数据库迁移时获取“无法将主机名“db”转换为地址”
- reactjs - 使用自定义日期格式导出反应材料表
- unit-testing - Dart 测试在正常代码之后执行