首页 > 解决方案 > Python,我如何将同一列 numpy 中的两个值相加并在该特定列 numpy 上迭代添加函数

问题描述

我正在处理一些 python binance 数据,并且遇到了问题。我想在单列上做简单的数学运算,并在同一列上迭代数学。我正在使用的数据是来自币安提要的数据量。

这是我的代码:

candles = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_1HOUR, "1 day ago UTC")
candle_dataframe = df(candles)
candle_dataframe_date = candle_dataframe[0]

date_init = []

for time in candle_dataframe_date.unique():
    readable = datetime.fromtimestamp(int(time/1000))
    date_init.append(readable)

candle_dataframe.pop(0)
candle_dataframe.pop(11)

dataframe_final_date = df(date_init)
dataframe_final_date.columns = ['date']

final_dataframe = candle_dataframe.join(dataframe_final_date)
final_dataframe.set_index('date', inplace=True)
final_dataframe.columns = ['open', 'high', 'low', 'close', 'volume', 'close_time', 'asset_volume', 'trade_number', 'taker_buy_base', 'taker_buy_quote']

list_volume = final_dataframe.iloc[:, [4]]
np_array = list_volume.to_numpy()

arr = np_array.astype('float64')
np.transpose(arr)
#print(np.transpose(arr))

#example 1
b = np_array[::2]
a = np_array[1::2]

print(np.add(a, b))

#example two
#for i, values, values1 in np_array:
#    values[0] += 1
#    if i == values[1]:
#        np.multiply(values, values1)
#result = np.add(a + b)

我希望,示例两种显示了我正在尝试做的事情。但是有没有办法控制 id 迭代,以便我从那里获得最后一卷和下一个并将它们相加,然后添加接下来的两个值等等?

在单列 id 上创建简单的数学似乎是不可能的,或者有没有办法通过它。

我只是认为必须复制列并使用冗余数据来实际执行数学运算是很愚蠢的。

标签: pythonarrayspandasnumpymath

解决方案


为什么要循环?这不应该工作吗?

arr = np.random.rand(10)
d = arr[:-1] + arr[1:]

推荐阅读