视图功能无法正确创建视图

时间:2019-07-08 08:17:35

标签: python numpy

我创建了一个名为a的numpy数组,然后通过查看b创建了另一个数组a。例如b=a.view()

但是,b.base is a给出的是False而不是True。请帮忙。

a=np.arange(6).reshape(2,3)

b=a.view()

print(b.base is a) # Expected True, actual was False

2 个答案:

答案 0 :(得分:1)

因为它是numpy.arange(6)

返回的原始数组的视图
import numpy as np
a = np.arange(6)
b = a.reshape(2,3)
c = b.view()
print(c.base is a, b.base is a)

答案 1 :(得分:0)

如果您将使用打印语句,您将对此非常清楚:-

import numpy as np
a=np.arange(6).reshape(2,3)
print(a)

b=a.view()
print(b.base)

print语句的输出看起来像

[[0 1 2]
 [3 4 5]]
[0 1 2 3 4 5]

您可以清楚地看到其中的区别。要使输出为True,可以使用以下命令:-

import numpy as np
a=np.arange(6)
newa=a.reshape(2,3)
print(a)
b=newa.view()
print(b.base)
print(b.base is a)

相应的输出将是:-

[0 1 2 3 4 5]
[0 1 2 3 4 5]
True