我想创建一个numpy数组而不先创建列表。
目前,我已经知道了:
import pandas as pd
import numpy as np
dfa = pd.read_csv('csva.csv')
dfb = pd.read_csv('csvb.csv')
pa = np.array(dfa['location'])
pb = np.array(dfb['location'])
ra = [(pa[i+1] - pa[i]) / float(pa[i]) for i in range(9999)]
rb = [(pb[i+1] - pb[i]) / float(pb[i]) for i in range(9999)]
ra = np.array(ra)
rb = np.array(rb)
有没有一种优雅的方法可以一步完成此np数组的最后一次填充而无需先创建列表?
谢谢
python大神给出的解决方案
您可以使用numpy中的向量进行计算,而无需列表:
ra = (pa[1:] - pa[:-1]) / pa[:-1]
rb = (pb[1:] - pb[:-1]) / pb[:-1]