Функция просмотра не создает представление правильно - PullRequest
1 голос
/ 08 июля 2019

Я создал массив numy с именем a, а затем создал еще один массив b в представлении a.Ex.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 ]

1 голос
/ 08 июля 2019

Поскольку это представление исходного массива, который возвращается 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)
0 голосов
/ 08 июля 2019

Если вы будете использовать печатные выписки, вам будет очень ясно об этом: -

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...