为了账号安全,请及时绑定邮箱和手机立即绑定

对 Numpy 数组求和

对 Numpy 数组求和

明月笑刀无情 2022-07-26 16:25:17
我有一个形式的numpy数组:np.Array1 = [   ['2019-12-01' '0.03555' '0.03' '0.03' '0.03'],   ['2019-12-02' '0.03' '0.03' '1' '0.03']]第二个:np.Array2 = [   array(['2019-12-01', '1', '1', '1', '1']),   array(['2019-12-02', '1', '1', '1', '20'])]有没有办法让我这样做:对每个元素求和npArray1.col1 = npArray2.col1- 即:当日期相同时,逐个元素添加元素(不包括日期)'2019-12-01' = '2019-12-01' so [0.03555+1, 0.03+1, 0.03+1, 0.03+1]我知道我可能会以错误的方式解决这个问题,通过改变同一个数组中的类型任何关于基于条件逻辑添加值的更好方法的建议都值得赞赏。
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您可以通过将数组转换为以日期为索引的 pandas 数据框并使用add:


import numpy as np

import pandas as pd


a1 = np.array( [['2019-12-01', '0.03555', '0.03', '0.03', '0.03'],

                ['2019-12-02', '0.03', '0.03', '1', '0.03']] )


a2 = np.array([['2019-12-01', '1', '1', '1', '1'],

               ['2019-12-02', '1', '1', '1', '20']])


# convert to dataframe and set the date as the index

# also convert to floats:

df1 = pd.DataFrame(a1).set_index(0).astype(float)

df2 = pd.DataFrame(a2).set_index(0).astype(float)



df1.add(df2, fill_value = 0)

然后,您可以通过转换回字符串、重置索引并获取值来将其作为原始格式的 numpy 数组取回:


df1.add(df2, fill_value = 0).astype(str).reset_index().values


查看完整回答
反对 回复 2022-07-26
?
皈依舞

TA贡献1851条经验 获得超3个赞

这对我有用,它不需要熊猫:


import numpy as np


a1 = [

    np.array(['2019-12-01', '0.03555', '0.03', '0.03', '0.03']),

    np.array(['2019-12-02', '0.03', '0.03', '1', '0.03'])

]


a2 = [

    np.array(['2019-12-01', '1', '1', '1', '1']),

    np.array(['2019-12-02', '1', '1', '1', '20'])

]


def array_adder(A, B):

    C = []

    for outer, outer2 in zip(A, B):

        temp = []

        if len(outer) == len(outer2):

            for inner, inner2 in zip(outer, outer2):

                if len(temp) < 1:

                    temp.append(inner)

                else:

                    temp.append(float(inner) + float(inner2))

            C.append(temp)

        else:

            print('Arrays must have the same length..')

            break

    return C


print(array_adder(a1, a2))


查看完整回答
反对 回复 2022-07-26
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信