我是python的新手。找到一些东西让我感到困惑。
import numpy as np
a = np.arange(10)
b = a[3:6]
b[2] = 1000
print "a is "+ str(a)
print "b is "+ str(b)
输出是:
a是[0 1 2 3 4 1000 6 7 8 9]
b是[3 4 1000]
但在MATLAB
或Mathematica
中,更改b不会影响列表a。
那么在numpy
中设计别名的目的是什么?
它有一些优势吗?
答案 0 :(得分:0)
那么在numpy中设计别名的目的是什么?它有一些优势吗?
有两个可能的优点:
b
只需要几十个字节,无论它在a
中引用的切片有多大。想象一下,a
的大小是1 GB,而b
是其中的一半。请注意,NumPy是一种用于阵列和矩阵运算的低级设施;如果你试图像你的例子中那样修改一个切片,那么稍微高一级的Pandas库就会发出警告(特别是它会显示SettingWithCopyWarning
。这个警告并不总是有用的 - 通常它会妨碍做什么我们想做。