Я использую объект данных, который представляет собой список массивов numpy различных форм. Я хотел бы рассматривать объект данных как единый объект Numpy, так что я могу добавить, вычитать и масштабировать эти объекты, как если бы они были чистые Numpy массивов:обрабатывать список массивов numpy как объект numpy
# Defining the data objects:
d1 = [numpy.random.rand(n**2).reshape(n, n) for n in range(1, 5)]
d2 = [numpy.random.rand(n**2).reshape(n, n) for n in range(1, 5)]
# The operation I want to perform:
d3 = [a1 + 2*a2 for a1, a2 in zip(d1, d2)]
# What I really would like to write:
d3 = d1 + 2*d2 # (not valid for lists of arrays)
Что это самый простой способ для определения объектов d1 и d2, чтобы я мог использовать последнюю строку?
Причина, по которой я прошу, состоит в том, что я хочу повторно использовать код, предполагающий, что d1 и d2 - это простые массивы numpy, которые можно добавить и масштабировать.
@Moses Koledoye: Формы массивов совпадение. См. Пример. –
Обратите внимание на 'shape' и' dtype' при создании массива из этих списков. Так как подмассивы отличаются по форме, комбинация будет 1d массивом объектов массива, а не многомерным массивом поплавков. Некоторые, но не все, numpy math распространяется через эти объекты. – hpaulj