我有以下的数据结构:
N=100
TB = {'names':('n', 'D'),'formats':(int, int)}
TA = {'names':('id', 'B'),'formats':(int, dtype((TB, (N))))}
a = np.empty(1000, dtype=TA)
b = np.empty(N, dtype=TB)
其中a是一个有两个字段'id'和'B'的结构化数组。在'B'中存储了另一个有'n'和'D'字段的结构化数组,例如:
for i in range(0,1000):
a['B'][i] = b
当执行以上赋值语句时,会将b中的数据复制到a中。有没有一种方法只复制对b的引用,这样当我改变b时,
a['B'][i]
也会反映出此更改?我的目标是在a中存储对b的指针,因为对于a的每一行来说,b中的数据是相同的,所以不需要创建副本。我尝试过。
TA = {'names':('id', 'B'),'formats':(int, object)}
它可以正常工作,但会破坏数组的嵌套结构。是否有方法保留结构化数组功能,例如 a['B']['D']
谢谢
A=np.ones(10); AA=np.empty(1, dtype=object); AA[0]=np.ones(10)
。如果可以使用AA.view()或AA.astype()将AA转换为A的类型/数据类型,则可以得到解决方案,但到目前为止我还没有找到方法。 - maryam roayaee