Если есть путаница, (3,)
не означает, что отсутствует измерение. Запятая является частью стандартной нотации Python для одного элемента кортежа. Формы (1,3), (3,), and (3,1)
различны,
Хотя они могут содержать одни и те же 3 элемента, их использование в вычислениях (broadcasting
) отличается, их формат печати отличается, а их эквивалент списка отличается:
In [21]: np.array([1,2,3])
Out[21]: array([1, 2, 3])
In [22]: np.array([1,2,3]).tolist()
Out[22]: [1, 2, 3]
In [23]: np.array([1,2,3]).reshape(1,3).tolist()
Out[23]: [[1, 2, 3]]
In [24]: np.array([1,2,3]).reshape(3,1).tolist()
Out[24]: [[1], [2], [3]]
И нам не нужно останавливаться на добавлении только одного размера синглтона:
In [25]: np.array([1,2,3]).reshape(1,3,1).tolist()
Out[25]: [[[1], [2], [3]]]
In [26]: np.array([1,2,3]).reshape(1,3,1,1).tolist()
Out[26]: [[[[1]], [[2]], [[3]]]]
В numpy
массив может иметь 0, 1, 2 или больше размеров. 1 так же логичен, как 2.
В MATLAB матрица всегда имеет 2 dim (или больше), но это не обязательно должно быть таким. Строго говоря, MATLAB даже не имеет скаляров. Массив с формой (3) не имеет измерения только в том случае, если в качестве стандарта принимается MATLAB.
numpy
построен на Python, который является скалярами и списками (которые могут гнездиться). Сколько размеров имеет список Python?
Если вы хотите попасть в историю, MATLAB был разработан как интерфейс для набора линейных алгоритмов Fortran. Учитывая проблемы, эти подпрограммы решили концепцию матрицы с 2-мя измерениями, а аргументы строк и столбцов имели смысл. Это было не до версии 3.что-то, что MATLAB было обобщено, чтобы допускать более двух измерений (в конце 1990-х годов).
numpy
основан на нескольких попытках предоставить массивы Python (например, numeric
). Эти разработчики взяли более общий подход к массивам, где 2d было искусственным ограничением. Это имеет приоритет в компьютерных языках и математике (и физике). APL была разработана в 1960-х годах, сначала как математическая нотация, а затем как компьютерный язык. Как и numpy
, его arrays
может быть 0d или выше. (Поскольку я использовал APL до того, как использовал MATLAB, подход numpy
кажется вполне естественным.)
В APL
нет отдельных списков или кортежей. Таким образом, форма array
, rho A
сама является массивом, а rho rho A
является числом измерений A, также называемым rank
.
Две проблемы:
Не переводите объект, чтобы он вращался вокруг центра.
<a-entity position="0 0 0">
<a-gltf-model id="testvase1" rotation = "0 0 0" scale="2 2 2" src="#gltf" position="0 0 0"></a-gltf-model>
<a-animation attribute="rotation" dur="10000" from= "0 0 0" to="0 360 0" repeat="indefinite"></a-animation>
</a-entity>
Ваши модели не центрированы в начале координат. Вам нужно будет импортировать в 3D-пакет, как Blender, и переориентировать его. Это пример вашего кода и модели с центром: https://glitch.com/edit/#!/utopian-walleye?path=public/index.html:32:19 [114 ]