Поведение при добавлении массивов numpy разных размеровPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поведение при добавлении массивов numpy разных размеров

Сообщение Anonymous »

Предположим, у меня есть два массива numpy, определенные (я в основном сосредоточен на размерах, а не на их конкретном содержимом)

Код: Выделить всё

a = np.random.rand(10,4)
b = np.random.rand(4)
а затем добавляю их

Код: Выделить всё

c = a + b
При этом создается массив размером (10,4), такой, что

Код: Выделить всё

c[n,m] == a[n,m] + b[m]
является истинным для всех n в диапазоне (10) и m в диапазоне (4). Кажется, это логичный способ добавить эти два массива. Но теперь давайте изменим ситуацию

Код: Выделить всё

a = np.random.rand(10,10)
b = np.random.rand(10)
c = a + b
На этот раз я вижу два возможных варианта c. Первая возможность

Код: Выделить всё

c[n,m] = a[n,m] + b[n]
И вторая возможность:

Код: Выделить всё

c[n,m] = a[n,m] + b[m]
Вы можете очень легко проверить, что именно вторая возможность оказывается верной. Итак, у меня два вопроса:
  • Всегда ли я могу гарантировать, что второй вариант правильный?
  • Если на предыдущий вопрос ответ положительный, почему второй всегда правильный?
Благодаря дальнейшему исследованию я обнаружил, что следующее не работает (что поначалу удивило):

Код: Выделить всё

a = np.random.rand(4,10)
b = np.random.rand(4)
c = a + b
что приводит к ошибке ValueError: операнды не могут передаваться вместе с фигурами (4,10) (4,) .
Итак , может показаться, что последний индекс a всегда должен соответствовать размеру b. Почему сделан такой выбор?

Подробнее здесь: https://stackoverflow.com/questions/791 ... rent-sizes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»