来自pandas.series的减法numpy.ndarray

时间:2017-11-26 14:49:19

标签: python numpy

我有一个numpy数组,shape =(15435,1)

array([[-3.92473475],
       [-3.72456857],
       [-4.0962113 ],
       ..., 
       [-2.96900943],
       [-3.0485911 ],
       [-3.15411717]])

和一个熊猫系列,shape =(15435,)

我怎样才能减去这两个?

谢谢!

2 个答案:

答案 0 :(得分:0)

这可以帮助您在pd.Seriesnp.ndarray之间执行计算。请记住,pd.Series中的基础数据被保存为numpy数组,因此这些计算很自然。

import pandas as pd, numpy as np

arr = np.array([1, 2, 3, 4, 5])
s = pd.Series([5, 4, 3, 2, 1])

s.values - arr

# array([ 4,  2,  0, -2, -4], dtype=int64)

s - pd.Series(arr)

# 0    4
# 1    2
# 2    0
# 3   -2
# 4   -4
# dtype: int64

答案 1 :(得分:0)

试试这个:

a = np.array([[10],[2],[3]])
a.shape
>>(3, 1)

b = pd.Series([2,3,4])
b.shape
>>(3,)

重塑numpy

a = a.reshape(1,3)

a
>array([[10,  2,  3]])

更一般的重塑:

a.reshape(1, a.size)

现在你可以减去

a - b.values
>>array([[ 8, -1, -1]])

b.values - a
>>array([[-8,  1,  1]])