numpy 结构化数组追加和删除记录
numpy Structured arrays append and remove records
假设我们有这个结构化数组:
x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],
dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
如何删除第一行:('Rex', 9, 81.0) ?
以及如何添加另一行 ??
你想要这个吗:(with np.insert
)
>>> x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
>>> y = np.array([('sam', 10, 100.0)],dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
>>> np.insert(x[1:],0,y)
array([('sam', 10, 100.), ('Fido', 3, 27.)],
dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f4')])
>>> x = np.delete(x, 1, axis=0)
>>> np.append(x, y, axis=0)
array([('Rex', 9, 81.), ('sam', 10, 100.)],
dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f4')])
假设我们有这个结构化数组:
x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],
dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
如何删除第一行:('Rex', 9, 81.0) ? 以及如何添加另一行 ??
你想要这个吗:(with np.insert
)
>>> x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
>>> y = np.array([('sam', 10, 100.0)],dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
>>> np.insert(x[1:],0,y)
array([('sam', 10, 100.), ('Fido', 3, 27.)],
dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f4')])
>>> x = np.delete(x, 1, axis=0)
>>> np.append(x, y, axis=0)
array([('Rex', 9, 81.), ('sam', 10, 100.)],
dtype=[('name', '<U10'), ('age', '<i4'), ('weight', '<f4')])