Python 使用numpy take函数获取多个维度
我有一个称为边的一维数组(n),希望通过顶点数组(n,3)中的索引插入值Python 使用numpy take函数获取多个维度,python,arrays,numpy,Python,Arrays,Numpy,我有一个称为边的一维数组(n),希望通过顶点数组(n,3)中的索引插入值 我尝试了np.take(顶点、边),但它不适用于多维数组。您只需在此处使用索引即可: vertices[edges] # ^ ^ indexing base为None这一事实意味着不会生成视图,它会生成矩阵的副本(带有过滤/重新排序的行)。因此,您以后对顶点的元素所做的更改将不会更改顶点[边]结果的元素(当然,如果您在更改顶点之前进行了复制)。您只需在此处使用索引即可: vertices[edges]
我尝试了np.take(顶点、边),但它不适用于多维数组。您只需在此处使用索引即可:
vertices[edges]
# ^ ^ indexing
base
为None
这一事实意味着不会生成视图,它会生成矩阵的副本(带有过滤/重新排序的行)。因此,您以后对顶点的元素所做的更改将不会更改顶点[边]
结果的元素(当然,如果您在更改顶点之前进行了复制)。您只需在此处使用索引即可:
vertices[edges]
# ^ ^ indexing
base
为None
这一事实意味着不会生成视图,它会生成矩阵的副本(带有过滤/重新排序的行)。您随后对顶点的元素所做的更改将不会更改顶点[边]
结果的元素(当然,假设您在更改顶点之前进行了复制)。使用轴参数工作
In [313]: vertices=np.array(vertices)
In [314]: edges=[1,3,2,0]
In [315]: np.take(vertices, edges,0)
Out[315]:
array([[ 2. , -5. , 3.32 ],
[ 32. , 4. , -23. ],
[ 23.3 , 43. , 12. ],
[ 1.25 , 4.321, -4. ]])
In [316]: vertices[edges,:]
Out[316]:
array([[ 2. , -5. , 3.32 ],
[ 32. , 4. , -23. ],
[ 23.3 , 43. , 12. ],
[ 1.25 , 4.321, -4. ]])
使用轴参数进行拍摄
In [313]: vertices=np.array(vertices)
In [314]: edges=[1,3,2,0]
In [315]: np.take(vertices, edges,0)
Out[315]:
array([[ 2. , -5. , 3.32 ],
[ 32. , 4. , -23. ],
[ 23.3 , 43. , 12. ],
[ 1.25 , 4.321, -4. ]])
In [316]: vertices[edges,:]
Out[316]:
array([[ 2. , -5. , 3.32 ],
[ 32. , 4. , -23. ],
[ 23.3 , 43. , 12. ],
[ 1.25 , 4.321, -4. ]])
这似乎是错误的:[1.254321,-4]
,可能是4.321
?你说的“通过顶点数组的索引插入值”是什么意思?为什么结果的第三个元素是[2,-5,3.32]
?这似乎是错误的:[1.254321,-4]
,可能是4.321
?你说的是什么意思“通过顶点数组中的索引插入值”?为什么结果的第三个元素是[2,-5,3.32]
?谢谢你,它工作了。看起来hpauljs解决方案快了一点谢谢。看起来hpauljs解决方案快了一点