我有一个小的python脚本,我总是遇到错误:
ValueError: cannot resize an array references or is referenced
by another array in this way. Use the resize function
代码:
points = comp.findall('Points') # comp is a parsed .xml
diffvals = np.arange(10, dtype=float)
diffvals.resize(len(points),8)
但有两件事我不明白:
我不知道我可以做些什么来解决这个问题。
答案 0 :(得分:6)
默认情况下,无法使用resize
方法调整与其他阵列共享数据的NumPy阵列的大小。相反,您可以使用np.resize
函数创建一个新的已调整大小的数组:
np.resize(a, new_shape)
或者您可以使用以下方法禁用参考检查:
a.resize(new_shape, refcheck=False)
您只能通过调试器看到它的可能原因是调试器将数组引用到例如打印出来。此外,调试器在将它们分配给变量之前可能不会存储对临时数组的引用,这可能解释了为什么其他脚本可以工作。
答案 1 :(得分:0)
使用
a = a.copy()
调整大小之前