我正在编写一个Python脚本,它获取实时流数据并将其附加到numpy数组中。但是我注意到,如果我一个接一个地附加到四个不同的数组中,它就可以工作了。例如:
openBidArray = np.append(openBidArray, bidPrice)
highBidArray = np.append(highBidArray, bidPrice)
lowBidArray = np.append(lowBidArray, bidPrice)
closeBidArray = np.append(closeBidArray, bidPrice)
但是,如果我执行以下操作,则不起作用:
^{pr2}$你知道为什么吗?在
请执行以下操作:
换句话说,您的列表应该是一个数组的列表,而不是一个字符串的列表,这些字符串碰巧包含了您碰巧定义的数组的名称。在
下一个问题是
^{pr2}$np.append()
返回一个数组的副本,其中追加了项,而不是在适当的地方追加。您将此结果存储在array
中,但是在下一次迭代中,array
将被分配给列表中的下一项,修改后的数组将丢失(当然,最后一个将在循环末尾的array
中)。所以您需要将每个修改过的数组存储回列表中。为此,您需要知道它来自哪个插槽,您可以使用enumerate()
获得该插槽。在当然,这不会更新原始变量,
openBidArray
等等。您可以在循环之后使用解压缩来执行此操作:但从某种意义上说,将数组存储在一个列表(或者字典中,如果需要按名称访问它们的话)中,而不是使用单独的变量。在
注意:如果您在这里使用常规的Python列表而不是NumPy数组,那么这些问题中的一些就会消失。^list上的{}是一个就地操作,因此您不必将修改后的数组存储回列表或解包到各个变量中。如果您真的需要在列表上添加NumPy功能,那么可以先用列表进行所有的附加,然后再将它们转换为数组。在
在第二个示例中,您有字符串,而不是np.数组物体。您正试图附加一个数字(?)一根绳子。在
字符串“openBidArray”不包含指向名为
openBidArray
的数组的任何链接。在相关问题 更多 >
编程相关推荐