如何对numpy结构化数组执行删除指定行、追加新记录操作
import numpy as np x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)], dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
删除第一条记录
numpy数组属于固定大小的序列,没有直接删除元素的原生方法,通过索引切片保留需要的部分即可实现删除效果:
# 保留索引1及之后的所有记录,即可去掉索引为0的第一条记录 x_deleted = x[1:]
如果需要得到和原数组完全独立的新数组,可以额外调用.copy()方法:
x_deleted = x[1:].copy()
追加新的行记录
使用np.append方法即可,注意新记录的字段类型要和原数组的dtype保持一致:
追加单条记录
# 先构造符合dtype要求的新记录 new_record = np.array(('Tom', 5, 42.0), dtype=x.dtype) # 追加到原数组末尾 x_appended = np.append(x, new_record)
追加多条记录
# 构造多条符合dtype要求的记录数组 new_records = np.array([('Tom', 5, 42.0), ('Lily', 2, 18.5)], dtype=x.dtype) x_appended = np.append(x, new_records)
内容的提问来源于stack exchange,提问作者NAS
相关产品推荐
相关产品推荐

