2024-09-21 05:43:01 发布
网友
这是在Python中声明和迭代数组的正确方法吗?在这个数组中,每个元素都乘以一个常量值?在
timeArray = array([0]*1000) for x in timeArray: timeArray[x] = x * deltaTime print(timeArray)
timeArray = [i*deltaTime for i in range(1000)]
将构造一个包含所需内容的列表。索引到列表中需要O(1)时间,与数组相同。Python列表非常快,它们实际上是implemented as arrays。在
确实要在构造数组/列表时print它的内容吗?在
print
(旁白:如果您希望更快的数组是因为您正在进行数字运算,那么Numpy数组可能是更好的选择:
)
看起来你真正需要的是numpy数组。内置数组的行为更像列表。在
#!/usr/bin/python from array import array timeArray = array("f", [1]*1000) deltaTime = 2 for i, x in enumerate(timeArray): timeArray[i] = timeArray[i] * deltaTime print(timeArray) # but numpy arrays behave more "naturally". from numpy import array timeArray = array([1]*1000, dtype="f") print (timeArray * 2)
numpy数组将数组的所有元素乘以一个标量值。 另外,我不确定你原来的数组代码是否真的能用。另外,numpy数组的速度要快得多。在
这可能不那么令人困惑,而且可以随心所欲。在
timeArray = [0 for i in range(1000)] for x in timeArray: timeArray[x] *= deltaTime print(timeArray)
将构造一个包含所需内容的列表。索引到列表中需要O(1)时间,与数组相同。Python列表非常快,它们实际上是implemented as arrays。在
确实要在构造数组/列表时
print
它的内容吗?在(旁白:如果您希望更快的数组是因为您正在进行数字运算,那么Numpy数组可能是更好的选择:
^{pr2}$)
看起来你真正需要的是numpy数组。内置数组的行为更像列表。在
numpy数组将数组的所有元素乘以一个标量值。 另外,我不确定你原来的数组代码是否真的能用。另外,numpy数组的速度要快得多。在
这可能不那么令人困惑,而且可以随心所欲。在
相关问题 更多 >
编程相关推荐