Может быть, вы не правильно называете нули?
Если вам нужна матрица 2x2, вы можете взглянуть на документы для Numpy как кажется, что вы ошибочно вызываете указанный метод
Редактировать: мое предложение было неверным, но все же кажется, что ошибка заключается в синтаксисе, взгляните на this
Edit2: в соответствии с вашим комментарием, здесь некоторые объяснения. ( TLDR внизу)
Edit3: Мой вывод, приведенный ниже, кажется неверным для решения, см. Ответ @markroxor ниже. Однако разница между () и [] сохраняется, поэтому я оставлю абзац без изменений.
На самом деле я не слишком знаком со swift, поэтому не могу заверить вас, что все Я говорю правильно, но здесь идет. Я просто предположил, что аргументы передаются в python так, как они вводятся в вызов метода. Теперь в Python x = [a,b,c]
будет создан объект типа list, тогда как x = (a,b,c)
создаст кортеж. Они оба используются для хранения нескольких элементов, к которым можно получить доступ через x [index]. Самое важное различие между ними заключается в том, что список может быть изменен после его создания (x[0] = z
), а попытка сделать это для кортежа приведет к ошибке. Однако это не относится к Swift (вопреки тому, что я думал вначале)
Теперь посмотрим, как python сильно игнорирует типы параметров, если с ними не предпринимается никаких «незаконных» попыток Я подумал, что вполне вероятно, что numpy.zeros()
не будет заботиться, если ему передан список или кортеж, если он содержит целые числа (проверено, ошибок нет). Опять же, это применимо для использования только в python
Теперь, посмотрев синтаксис Swift, я бы сказал, что проблема / решение в том, что Swift и Python, похоже, обрабатывают списки / массивы (Python вызовы их списки) очень похоже синтаксис кортежей сильно отличается, в результате чего вызов метода выдает ошибку при использовании круглых скобок, создавая тем самым Swift кортеж, который python не знает, как обрабатывать, тогда как Сходство в том, как работают массивы / списки, приводит к тому, что [] успешно передается в метод numpy
TLDR Разница, по-видимому, в том, что Python и Swift обрабатывают массивы аналогично, реализация Tuples отличается, поэтому использование [] работает над ()