Многомерные массивы немного мутные. Есть несколько причин для их использования и много причин думать дважды и использовать что-то еще, что более правильно отражает то, что вы делаете. [Подсказка. ваш вопрос был тонким по контексту ;-)]
Если вы делаете математическую математику, используйте numpy
.
Однако некоторые люди работали с языками, которые заставляли их использовать многомерные массивы, потому что это все, что у них есть. Если вы так стара, как я, (я начал программировать в 70-х годах), то вы можете вспомнить дни, когда многомерные массивы были единственной структурой данных, которую вы имели. Или ваш опыт, возможно, ограничил вас языками, на которых вам пришлось превратить вашу проблему в многомерные массивы.
Скажите, у вас есть коллекция n 3D точки. Каждая точка имеет значения x, y, z и времени. Это массив n x 4? Или a 4 * n массив? На самом деле, нет.
Поскольку каждая точка имеет 4 фиксированных значения, это более правильный список кортежей.
a = [ (x, y, z, t), (x, y, z, t), ... ]
Еще лучше, мы могли бы представить это как список объектов.
class Point(object):
def __init__(self, x, y, z, t):
self.x, self.y, self.z, self.t = x, y, z, t
a = [ Point(x,y,x,t), Point(x,y,z,t), ... ]
. Кстати, вы можете получить бесконечность бесконечности в python как' float ('inf') '. Он ведет себя более или менее, как и следовало ожидать, - большинство операций просто дают вам inf, а некоторые дают вам nan. –
(объединенный с более ранним вопросом, сохранил это как мастер как: OP все еще существует, b: вопрос лучше сформулирован и c: чтобы избежать множества некромантов) –