Размер объектов в массиве Numpy: пример Sympy Points - PullRequest
0 голосов
/ 22 мая 2018

Здесь приложен некоторый код, в котором он пытается создать экземпляр Numpy Array of Sympy Points с учетом их координат.

from sympy.geometry import Point
import numpy as np

coordinates = np.array([2,0, 1,-1, 0,0, -2,3, -3,-2, 0.01,-0.01]).reshape(6,2) 

v1 = np.empty((coordinates.shape[0],),dtype=np.dtype(Point))
for index, value in enumerate(coordinates):
    v1[index] = Point(value)
print(v1)
# [Point2D(2, 0) Point2D(1, -1) Point2D(0, 0) Point2D(-2, 3) Point2D(-3, -2) Point2D(1/100, -1/100)]

v2 = np.empty((coordinates.shape[0],2),dtype=np.dtype(Point))
for index, value in enumerate(coordinates):
    v2[index] = Point(value)
print(v2)
# [[2 0]
# [1 -1]
# [0 0]
# [-2 3]
# [-3 -2]
# [1/100 -1/100]]

v3 = np.empty((coordinates.shape[0],1),dtype=np.dtype(Point))
for index, value in enumerate(coordinates):
    v3[index] = Point(value)
print(v3)
# ValueError: cannot copy sequence with size 2 to array axis with dimension 1

Я бы ожидал, что размер 1 для второго индекса результата должен бытьправильный способ сделать это (v3), потому что Point должен быть 1 объектом, но он выдает ошибку.

v1 - это то, что я ожидал получить, выполняя v3.Почему это должно быть сделано способом v1?Почему v1 не так?Почему v2 не является вектором Sympy Points?

...