绑定到NumPy数组的变量的独立性

时间:2012-11-27 16:29:47

标签: python numpy

我有一个NumPy数组,我们称之为A。我不清楚以下代码的行为:

b = A[3,:];
A[3,:] = 0;

第三行必须保存在b中,但令人惊讶的是b也变为零!

任何帮助?

2 个答案:

答案 0 :(得分:2)

要制作副本,您实际上必须制作copy

b = A[3,:].copy()

(顺便说一下,python不是C:在语句需要之后没有分号。)

答案 1 :(得分:2)

从MATLAB / Octave迁移我看到: - )?

1)记住Python使用基于0的数组而不是MATLAB的基于1的数组。 A[3,:]实际上会给你第4行。

2)与MATLAB不同,从这样的数组中获取切片会将切片的内存位置从 slicee 存储到切片器中。因此,正如Andrew J.所说,你需要复制。

根据您要求“第三行必须保存在b中”的陈述,您的代码应为

b = A[2,:].copy()