【问题标题】:How to make operations between part of array with part of array?如何在数组的一部分与数组的一部分之间进行操作?
【发布时间】:2017-06-04 00:52:22
【问题描述】:
import numpy as np
a=np.array([2,3,4,6,7,4,5,3,2,1,9,8,7,6,4,2])
## a has 16 elements
b=np.array([1,5,3,7])
""" i want this:
 a[:4] - b[1], a[4:8]-b[2], a[8:12]-b[3], a[12:16]-b[4] in one array
and it should look like
c=numpy.array[1,2,3,5,2,-1,0,-2....]

这只是我的问题的一个简单示例。所以不能使用组来完成。我需要一个循环来解决这个问题。

【问题讨论】:

    标签: python python-2.7 loops


    【解决方案1】:

    您可以重塑您的数组a,对其进行操作,然后将其展平。

    In [24]: import numpy as np
    
    In [25]: a=np.array([2,3,4,6,7,4,5,3,2,1,9,8,7,6,4,2])
    
    In [26]: b=np.array([1,5,3,7])
    
    In [27]: (a.reshape(4,4).T - b).T.ravel()
    Out[27]: array([ 1,  2,  3,  5,  2, -1,  0, -2, -1, -2,  6,  5,  0, -1, -3, -5])
    

    【讨论】:

    • 哦,非常感谢。我能再问你一个问题吗?我有一个列表 [[1,2],[3,4]],我怎样才能使它成为 [1,2,3,4]?
    • @SelcukYalcinkaya,如果这是一个python列表,常见的做法是:from itertools import chainlist(chain(*[[1,2],[3,4]]))
    • 嗯,是的,它是一个 python 列表,但我的列表比我能输入的要长,这只是一个例子。会这样吗? list(chain(*a)) if a is the list if I want to make chain?
    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2016-08-08
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多