Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用numpy take函数获取多个维度_Python_Arrays_Numpy - Fatal编程技术网

Python 使用numpy take函数获取多个维度

Python 使用numpy take函数获取多个维度,python,arrays,numpy,Python,Arrays,Numpy,我有一个称为边的一维数组(n),希望通过顶点数组(n,3)中的索引插入值 我尝试了np.take(顶点、边),但它不适用于多维数组。您只需在此处使用索引即可: vertices[edges] # ^ ^ indexing base为None这一事实意味着不会生成视图,它会生成矩阵的副本(带有过滤/重新排序的行)。因此,您以后对顶点的元素所做的更改将不会更改顶点[边]结果的元素(当然,如果您在更改顶点之前进行了复制)。您只需在此处使用索引即可: vertices[edges]

我有一个称为边的一维数组(n),希望通过顶点数组(n,3)中的索引插入值


我尝试了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解决方案快了一点