我创建了一个名为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
答案 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