与副本的Numpy数组赋值
例如,如果我们有一个numpy数组A ,并且我们想要一个具有相同元素的numpy数组B 
这些方法有什么区别? 何时分配额外内存,何时不是?
-  B = A
-   B[:] = A(与B[:]=A[:]?相同)
-  numpy.copy(B, A)
所有三个版本都做不同的事情。
- 
这将新名称 B绑定到已命名为A的现有对象。 之后,他们指的是同一个对象,所以如果你修改了一个对象,你也会看到另一个对象的变化。
- 
这将 A的值复制到现有的数组B。 这两个数组必须具有相同的形状才能工作。B[:] = A[:]做同样的事情(但B = A[:]会做更像1的事情)。
- 
这不是合法的语法。 你可能意思是 B = numpy.copy(A)。 这几乎与2相同,但它创build一个新的数组,而不是重新使用B数组。 如果没有其他引用到前一个B值,最终结果将与2相同,但在复制过程中会临时使用更多的内存。编辑:或者你的意思是 numpy.copyto(B, A),这是合法的,相当于2?
-   B=A创build一个参考
-   B[:]=A进行深层复制
-   numpy.copy(B,A)复制
最后两个需要额外的内存。
编辑:看看这个问题
这是我唯一的工作答案:
 B=numpy.array(A)