Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 执行';加入';关于两个numpy数组_Python_Python 3.x_Pandas_Numpy_Data Manipulation - Fatal编程技术网

Python 执行';加入';关于两个numpy数组

Python 执行';加入';关于两个numpy数组,python,python-3.x,pandas,numpy,data-manipulation,Python,Python 3.x,Pandas,Numpy,Data Manipulation,我有两个numpy阵列,如下所示: a = np.array([[1, 10], [2, 12], [3, 5]]) b = np.array([[1, 0.78], [3, 0.23]]) 列表中的第一个数字是id参数,第二个是值。我想把它们结合起来。预期输出等于: np.array([1, 10, 0.78], [2, 12, 0], [3, 5, 0.23]) 是否有一个功能(或功能组合)可以为我做到这一点?非常感谢任何帮助 如果找不到对象,则会将0放在相应的位置。您使用的是第一个元素

我有两个numpy阵列,如下所示:

a = np.array([[1, 10], [2, 12], [3, 5]])
b = np.array([[1, 0.78], [3, 0.23]])
列表中的第一个数字是id参数,第二个是值。我想把它们结合起来。预期输出等于:

np.array([1, 10, 0.78], [2, 12, 0], [3, 5, 0.23])
是否有一个功能(或功能组合)可以为我做到这一点?非常感谢任何帮助


如果找不到对象,则会将0放在相应的位置。

您使用的是第一个元素,如字典的
键或Pandas系列的索引。因此,我使用了那些更适合您要进行的组合的工具。然后我会转换回您要查找的数组

import pandas as pd
import numpy as np

a = np.array([[1, 10], [2, 12], [3, 5]])
b = np.array([[1, 0.78], [3, 0.23]])

pd.concat(
    map(pd.Series, map(dict, (a, b))), axis=1
).fillna(0).reset_index().values

array([[ 1.  , 10.  ,  0.78],
       [ 2.  , 12.  ,  0.  ],
       [ 3.  ,  5.  ,  0.23]])
注:

  • 我将
    dict
    pd.Series
    映射到iterable
    (a,b)
  • 我将它们传递给pd.concat,它将生成一个数据帧
  • 0
  • 重置索引以取回您的密钥
  • 仅获取值

  • 如果你有另一个数组

    a = np.array([[1, 10], [2, 12], [3, 5]])
    b = np.array([[1, 0.78], [3, 0.23]])
    c = np.array([[1, 3.14], [2, 3.14]])
    
    pd.concat(
        map(pd.Series, map(dict, (a, b, c))), axis=1
    ).fillna(0).reset_index().values
    
    array([[ 1.  , 10.  ,  0.78,  3.14],
           [ 2.  , 12.  ,  0.  ,  3.14],
           [ 3.  ,  5.  ,  0.23,  0.  ]])
    

    如果要快速将阵列转换为熊猫系列
    请注意,我给新名字
    a_
    b_
    c_
    写了封信,以避免覆盖其他名字

    a_, b_, c_ = map(pd.Series, map(dict, (a, b, c)))
    

    获取数据帧

    df = pd.concat(map(pd.Series, map(dict, (a, b, c))), axis=1).fillna(0)
    df
    
        0     1     2
    1  10  0.78  3.14
    2  12  0.00  3.14
    3   5  0.23  0.00
    

    您正在使用第一个元素,如字典的
    键或Pandas系列的索引。因此,我使用了那些更适合您要进行的组合的工具。然后,我将转换回您要查找的数组

    import pandas as pd
    import numpy as np
    
    a = np.array([[1, 10], [2, 12], [3, 5]])
    b = np.array([[1, 0.78], [3, 0.23]])
    
    pd.concat(
        map(pd.Series, map(dict, (a, b))), axis=1
    ).fillna(0).reset_index().values
    
    array([[ 1.  , 10.  ,  0.78],
           [ 2.  , 12.  ,  0.  ],
           [ 3.  ,  5.  ,  0.23]])
    
    注:

  • 我将
    dict
    pd.Series
    映射到iterable
    (a,b)
  • 我将它们传递给pd.concat,它将生成一个数据帧
  • 0
  • 重置索引以取回您的密钥
  • 仅获取值

  • 如果你有另一个数组

    a = np.array([[1, 10], [2, 12], [3, 5]])
    b = np.array([[1, 0.78], [3, 0.23]])
    c = np.array([[1, 3.14], [2, 3.14]])
    
    pd.concat(
        map(pd.Series, map(dict, (a, b, c))), axis=1
    ).fillna(0).reset_index().values
    
    array([[ 1.  , 10.  ,  0.78,  3.14],
           [ 2.  , 12.  ,  0.  ,  3.14],
           [ 3.  ,  5.  ,  0.23,  0.  ]])
    

    如果要快速将阵列转换为熊猫系列
    请注意,我给新名字
    a_
    b_
    c_
    写了封信,以避免覆盖其他名字

    a_, b_, c_ = map(pd.Series, map(dict, (a, b, c)))
    

    获取数据帧

    df = pd.concat(map(pd.Series, map(dict, (a, b, c))), axis=1).fillna(0)
    df
    
        0     1     2
    1  10  0.78  3.14
    2  12  0.00  3.14
    3   5  0.23  0.00
    

    我没有遵循预期输出的逻辑:
    [2,12,0]
    是如何从
    a
    b
    的条目中派生出来的?根据我对您描述的解释,我希望输出是
    np.array([1,10,0.78],[2,12],[3,5,0.23])
    np array([1,10,0.78],[2,12,0],[3,5,0.23])
    (如果值
    0
    表示“未在该数组中找到”,则为后者).NumPy数组不是为您想要的锯齿状结构而设计的。可以创建数组数组或列表数组来表示锯齿状数组,但它们与大多数NumPy操作不兼容,并且也有各种各样令人讨厌的边缘情况。很抱歉,这已更新。目标不是创建锯齿状数组,但表示需要组合的两个数据列表。我不遵循预期输出的逻辑:如何从
    a
    b
    的条目中导出
    [2,12,0]
    ?根据我对您描述的解释,我预期输出为
    np.array([1,10,0.78],[2,12],[3,5,0.23])
    np.数组([1,10,0.78],[2,12,0],[3,5,0.23])
    (如果值
    0
    表示“未在该数组中找到”,则为后者).NumPy数组不是为您想要的锯齿状结构而设计的。可以创建数组数组或列表数组来表示锯齿状数组,但它们与大多数NumPy操作不兼容,并且也有各种各样令人讨厌的边缘情况。很抱歉,这已更新。目标不是创建锯齿状数组,但表示需要合并的两个数据列表。好的,这很有帮助。因此,如果我在一个项目中工作,我有很多键和值,那么熊猫似乎是最好的选择。上面的答案很有意义,但我需要能够扩展它。例如,如果我有c=np.array([[1,3.14],[2,3.14]),如何将其添加到数组中,创建[[1,10,0.78,3.14],[2,12,0,3.14],[3,5,0.23,0]]如果像这样的事情在pandas中更容易实现,我很乐意使用这个工具。很高兴我能提供帮助。好的,这很有帮助。因此,如果我在一个有很多键和值的项目中工作,看起来pandas将是一条路要走。上面的答案很有意义,但我需要能够扩展它。例如,如果我有c=np.array([[1,3.14],[2,3.14]],如何将其添加到数组中,创建[[1,10,0.78,3.14],[2,12,0,3.14],[3,5,0.23,0]],如果在熊猫中这样做更容易,我很乐意使用该工具。很高兴我能提供帮助。