Получение первого элемента массива с vstack по сравнению с предопределенным массивом. Тот же массив, другие результаты? - PullRequest
0 голосов
/ 28 ноября 2018

Я полагаю, что они должны иметь тот же результат, но это не так.

import numpy as np

a=np.empty((0,9))
a=np.vstack((a,[1,2,3,4,"hello",6,7,8,9]))
print(a[0])

результат: ['1' '2' '3' '4' 'hello' '6' '7''8' '9']

Но если я сделаю это так:

import numpy as np

a=np.array([1,2,3,4,"hello",6,7,8,9])
print(a[0])

результат: 1

Почему есть разница?Разве это не тот же массив?

Спасибо за ответы заранее.

1 Ответ

0 голосов
/ 28 ноября 2018

Они не совпадают.

Ваш первый пример приводит к массиву формы (1, 9), тогда как ваш второй пример - массив формы (9,), который можно подтвердить, как показано ниже:

import numpy as np

a = np.empty((0,9))
a = np.vstack((a,[1,2,3,4,"hello",6,7,8,9]))
print(a.shape) # result is: (1, 9)

a = np.array([1,2,3,4,"hello",6,7,8,9])
print(a.shape) # result is: (9,)

Массив с формой (1, 9) можно рассматривать как массив (длиной 1), который содержит массивы (каждая длиной 9).Следовательно, в вашем примере a[0] дает вам первый из этих массивов длины 9, который равен [1,2,3,4,"hello",6,7,8,9].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...