我需要将一组数组的类型设置为每个数组的类型
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'>
您可以按照您的方式重新分配。您的
elem
变量在每一步的循环内都会被覆盖,原始变量保持不变。
简单使用:
pos = np.array(pos)
vel = np.array(vel)
accel = np.array(accel)