如何将一组Python列表转换为numpy数组?

问题描述 投票:0回答:1

我需要将一组数组的类型设置为每个数组的类型

np.ndarray
。由于我需要多次执行此操作,因此我尝试使用
for
循环,在执行循环时似乎可以正确地从
list
转换为
np.ndarray
,但是一旦结束,每个数组仍然是
list
类型,下面的这个块帮助我意识到它正在发生,但我不知道为什么会发生

那么,为什么会发生这种情况呢?以及如何解决它?预先感谢

import numpy as np

pos = [1,1,1]
vel = [1,1,2]
# vel = np.array([1,1,2])
accel = [1,1,3]

print('\nredefining...')
for elem in [pos,vel,accel]:
    # checks if the array is of the np.ndarray class
    print(type(elem))
    if not isinstance(elem, np.ndarray):
        elem = np.array(elem)
        print(type(elem))
    print('---------------------------')

print('\nafter the redefinition:')

print(type(pos))
print(type(vel))
print(type(accel))

输出:

redefining...
<class 'list'>
<class 'numpy.ndarray'>
---------------------------
<class 'list'>
<class 'numpy.ndarray'>
---------------------------
<class 'list'>
<class 'numpy.ndarray'>
---------------------------

after the redefinition:
<class 'list'>
<class 'list'>
<class 'list'>
python arrays list numpy numpy-ndarray
1个回答
0
投票

您可以按照您的方式重新分配。您的

elem
变量在每一步的循环内都会被覆盖,原始变量保持不变。

简单使用:

pos = np.array(pos)
vel = np.array(vel)
accel = np.array(accel)
© www.soinside.com 2019 - 2024. All rights reserved.