Numpy数组中对象的大小:Sympy Points示例

时间:2018-05-22 06:09:20

标签: python-3.x numpy sympy numpy-ndarray

这里附上一些代码,在这些代码中,尝试在给定坐标的情况下实例化Numpy数组Sympy点。

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的矢量?

0 个答案:

没有答案