Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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 如何指定多个";num";np.linspace函数的参数?_Python_Arrays_Numpy_Linspace - Fatal编程技术网

Python 如何指定多个";num";np.linspace函数的参数?

Python 如何指定多个";num";np.linspace函数的参数?,python,arrays,numpy,linspace,Python,Arrays,Numpy,Linspace,我想知道是否有办法使用多个num参数设置NumPylinspace函数,这样我就可以创建具有不同间隔的等距值序列,而无需任何for循环操作 为了进一步说明我的问题,我有下面的np.array,我想为其细分3个段,由它们在x、y、z轴上各自的2个顶点表示: ************************* 3D SEGMENTS TO DISCRETIZE ************************* SegmentToDiscretize = np.array([[[150.149, 1

我想知道是否有办法使用多个
num
参数设置NumPy
linspace
函数,这样我就可以创建具有不同间隔的等距值序列,而无需任何for循环操作

为了进一步说明我的问题,我有下面的np.array,我想为其细分3个段,由它们在x、y、z轴上各自的2个顶点表示:

*************************
3D SEGMENTS TO DISCRETIZE
*************************
SegmentToDiscretize = np.array([[[150.149, 167.483,   4.2  ],[160.149, 167.483,   4.2  ]],
                                [[148.594, 163.634,  25.8  ],[180.547, 170.667,  25.8  ]],
                                [[180.547, 170.667,  25.8  ],[200.547, 190.667,  25.8  ]]])
以及用于在每对顶点之间添加等距点的福林函数:

******************************
EQUIDISTANT POINTS COMPUTATION
******************************
nbsubdiv = 10

addedpoint = np.linspace(SegmentToDiscretize[:,0],SegmentToDiscretize[:,1],nbsubdiv, dtype = np.float)
由于参数
nbsubdiv
,我可以指定需要多少个细分。
但是我想为我的SegmentToDiscretize
np.array

[[[150.149, 167.483,   4.2  ],[160.149, 167.483,   4.2  ]],   <-- nbsubdiv = 4
[[148.594, 163.634,  25.8  ],[180.547, 170.667,  25.8  ]],    <-- nbsubdiv = 30
[[180.547, 170.667,  25.8  ],[200.547, 190.667,  25.8  ]]]    <-- nbsubdiv = 10
通过上述代码,我获得:

[[148.594      163.634        4.2       ]
 [150.149      165.97833333   4.2       ]
 [153.48233333 167.483        4.2       ]
 [156.81566667 167.483        4.2       ]
 [159.245      167.483       25.8       ]
 [160.149      167.483       25.8       ]
 [169.896      168.32266667  25.8       ]
 [180.547      170.667       25.8       ]
 [180.547      170.667       25.8       ]
 [187.21366667 177.33366667  25.8       ]
 [193.88033333 184.00033333  25.8       ]
 [200.547      190.667       25.8       ]]
这是正常的,因为nbsubdiv[0]获取列表中的第一个元素。但是我没有成功地找到一种方法,在没有
for循环的情况下递归地使用这个列表中的每个值

因此,如果有人能帮助我解决这个挑战,我将非常高兴。 提前谢谢

亲切问候,


Hervé

linspace
返回一个数组。最初是1d,现在可以指定数组的开始和停止。但是
num
必须是标量。否则它不可能是多维数组。二维数组中不能有一个10元素行和另一个11元素行!感谢@hpaulj的第一次回复。因此,如果我理解得很好,现在不可能使用
np.array
来包含3个不同的值,这些值将在每个分段上受到影响,从而区分np.array行?
[[148.594      163.634        4.2       ]
 [150.149      165.97833333   4.2       ]
 [153.48233333 167.483        4.2       ]
 [156.81566667 167.483        4.2       ]
 [159.245      167.483       25.8       ]
 [160.149      167.483       25.8       ]
 [169.896      168.32266667  25.8       ]
 [180.547      170.667       25.8       ]
 [180.547      170.667       25.8       ]
 [187.21366667 177.33366667  25.8       ]
 [193.88033333 184.00033333  25.8       ]
 [200.547      190.667       25.8       ]]