我有一个numpy数组,shape =(15435,1)
array([[-3.92473475],
[-3.72456857],
[-4.0962113 ],
...,
[-2.96900943],
[-3.0485911 ],
[-3.15411717]])
和一个熊猫系列,shape =(15435,)
我怎样才能减去这两个?
谢谢!
答案 0 :(得分:0)
这可以帮助您在pd.Series
和np.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]])