繁体   English   中英

将 numpy 数组的每一行转换为 numpy 数组

[英]Transform each row of a numpy array into a numpy array

我有以下ndarray

array([[0.00000, 0.00000,  50.00000],
       [0.00000, 10.02227, 50.00000],
       [0.00000, 20.04454, 50.00000],
       [0.00000, 30.06682, 50.00000],
       [0.00000, 40.08909, 50.00000]])

我想将每一行转换为一个单独的ndarray以便拥有一个嵌套的ndarray结构:

array([[array([0.00000, 0.00000,  50.00000])],
       [array([0.00000, 10.02227, 50.00000])],
       [array([0.00000, 20.04454, 50.00000])],
       [array([0.00000, 30.06682, 50.00000])],
       [array([0.00000, 40.08909, 50.00000])]])

我试过:

new_array = numpy.apply_along_axis(np.array, 1, old_array)

但没有成功,因为new_array等于old_array

如何转换我的数组? 我想应该有一个使用for循环的解决方案,但是有没有更 Pythonic 的替代方案?

不知道为什么要实现这一点,因为np.array列表更有意义,但你可以这样做:

new_array = np.zeros((old_array.shape[0], 1), dtype = 'O')
new_array[:] = [[x] for x in old_array]
new_array

输出:

array([[array([ 0.,  0., 50.])],
       [array([ 0.     , 10.02227, 50.     ])],
       [array([ 0.     , 20.04454, 50.     ])],
       [array([ 0.     , 30.06682, 50.     ])],
       [array([ 0.     , 40.08909, 50.     ])]], dtype=object)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM