Zip
здесь не требуется, для лучшей производительности используйте numpy
или pandas
:
arr = np.hstack((S1.values[:, None], S2.values[:, None]))
Или:
arr = np.vstack((S1, S2)).T
Или:
arr = pd.concat([S1.reset_index(drop=True), S2.reset_index(drop=True)], axis=1).values
Или:
arr = np.c_[S1, S2]
print (arr)
[[-0.483415 -0.961871]
[-0.514082 -0.964762]
[-0.515724 -0.963798]
[-0.519375 -0.962112]
[-0.505685 -0.962028]]
Производительность :
#50k values
S1 = pd.concat([S1] * 10000, ignore_index=True)
S2 = pd.concat([S2] * 10000, ignore_index=True)
In [107]: %timeit arr = np.hstack((S1.values[:, None], S2.values[:, None]))
133 µs ± 15.9 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
In [108]: %timeit arr = np.vstack((S1, S2)).T
176 µs ± 12 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
In [109]: %timeit arr = pd.concat([S1.reset_index(drop=True), S2.reset_index(drop=True)], axis=1).values
1.49 ms ± 74.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [110]: %timeit arr = np.c_[S1, S2]
320 µs ± 10.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [111]: %timeit np.array(list(zip(S1, S2)))
33 ms ± 545 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)