如何获取n * m个矩阵行的所有可能总和的列表

阿特巴耶夫草

在csv中有这个4x10nx m)数据矩阵:

1, 5, 19, 23, 7, 51, 18, 20, 35, 41
15, 34, 17, 8, 11, 93, 13, 46, 3, 10
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
10, 9, 8, 7, 6, 5, 4, 3, 2, 1

首先,我尝试从第一n/2行中获取所有可能的总和的列表对于剩下的最后n/2几行,我也做同样的事情。

在第一行的所有可能总和下,我的意思是:

示例:
第11, 2, 3
第2行:3, 2, 1

所有可能的款项清单1 + [3, 2, 1]; 2 + [3, 2, 1];3 + [3, 2, 1]

最终名单:([4, 3, 2, 5, 4, 3, 6, 5, 4] 目前,我不想删除重复项)

根据我的逻辑,我有以下代码:

import csv

def loadCsv(filename):
    lines = csv.reader(open(filename, "rb"))
    dataset = list(lines)
    for i in range(len(dataset)):
        dataset[i] = [float(x) for x in dataset[i]]
    return dataset

data = loadCsv('btest2.txt')
divider = len(data)/2

firstPossibleSumsList = []
secondPossibleSumsList = []


#Possible sum list for the first n/2 rows:
for i in range(len(data[0])):
    for j in range(len(data[0])):
        firstPossibleSumsList.append(data[0][i] + data[1][j])

#Possible sum list for the last n/2 rows:
for i in range(len(data[0])):
    for j in range(len(data[0])):
        secondPossibleSumsList.append(data[2][i] + data[3][j])

问题是我通过使用data[0][i]手动对行进行了划分data[1][i]data[2][i]依此类推。我想通过包含divider变量来更有效地做到这一点,但我不知道怎么做。在我的代码中,我依赖整数0, 1, 2, 3,但无论矩阵尺寸如何,我都希望将矩阵行分成两半。

公吨

一种选择是将其视为向量和转置向量的总和。然后,您可以执行以下操作:

import numpy as np

data = np.array(loadCsv('btest2.txt'))

firstPossibleSumsArray = (data[0,:,np.newaxis] + data[1]).flatten()

#output for first two columns:
array([  15,   34,   17,    8,   11,   93,   13,   46,    3,   10,   75,
    170,   85,   40,   55,  465,   65,  230,   15,   50,  285,  646,
    323,  152,  209, 1767,  247,  874,   57,  190,  345,  782,  391,
    184,  253, 2139,  299, 1058,   69,  230,  105,  238,  119,   56,
     77,  651,   91,  322,   21,   70,  765, 1734,  867,  408,  561,
   4743,  663, 2346,  153,  510,  270,  612,  306,  144,  198, 1674,
    234,  828,   54,  180,  300,  680,  340,  160,  220, 1860,  260,
    920,   60,  200,  525, 1190,  595,  280,  385, 3255,  455, 1610,
    105,  350,  615, 1394,  697,  328,  451, 3813,  533, 1886,  123,
    410])

最后一个拼合是将其从一个10x10数组转换为一个100x1数组,这没有必要。

使用数组的缺点是,在调整大小/追加数据时,它们不那么灵活。

编辑:

完整的代码可能类似于:

div = int(data.shape[0])
row_len_squared = int(data.shape[1]**2)

firstPossibleSumsArray = np.empty( int((div*(div-1))/2 * row_len_squared), dtype=int )

idx = 0
for row in range(div):
    for col in range(row+1,div):
        firstPossibleSumsArray[idx:idx+row_len_squared] = \
            (data[row,:,np.newaxis] + data[col]).flatten()
        idx += row_len_squared
#reapeat process for second possible sums array by replacing the range 
#in the first loop from range(div) to range(div,2*div)            

这将遍历每一行,并将其与矩阵一半中的其余行相加(行#1 +行#2,...,行#1 +行#n,行#2 +行#3等)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得n * m个矩阵行的所有可能总和的列表

来自分类Dev

从数字列表中获取所有可能的总和

来自分类Dev

创建一个递归函数以获取整数列表中所有可能子集的总和

来自分类Dev

获取矩阵中所有可能的行组合

来自分类Dev

获取矩阵中所有可能的行组合

来自分类Dev

如何从n个列表中形成所有可能的组合

来自分类Dev

给定长度为M和N的列表,如何获取具有所有可能对的长度为M * N的列表

来自分类Dev

如何找到所有可能的总和等于n的3个数字?

来自分类Dev

如何找到数组中N个元素的所有可能总和?

来自分类Dev

从列表中获取k个元素的所有可能组合

来自分类Dev

获取所有可能的总和和基于值的输出列表

来自分类Dev

从 n 个列表中获取任何非零长度的所有可能组合

来自分类Dev

如何获得将长度为n的列表划分为m个子列表的所有可能组合

来自分类Dev

问题是从列表中的一行添加所有元素并获取总和

来自分类Dev

生成所有可能的3个正整数,总和为N

来自分类Dev

MySQL查询以获取所有外键及其在m:n表中所有列的总和

来自分类Dev

如何获取包含工人所有可能分配的列表?

来自分类Dev

获取具有特定总和的范围内n个数字的所有可能排列的算法

来自分类Dev

获取所有/某些元素的列表的前 n 个元素

来自分类Dev

R:获取所有列表子集的最佳 N 个值

来自分类Dev

如何获得矩阵的所有可能置换矩阵

来自分类Dev

给定一个成对排序矩阵,如何枚举所有可能的总阶数

来自分类Dev

Mongodb:如何获取记录N到M?

来自分类Dev

如何获取n个最长的DataFrame条目?

来自分类Dev

如何获取`ls`命令的前n行

来自分类Dev

解析Scheme中的列表并获取所有数字的总和

来自分类Dev

获取从方矩阵的一个点到有障碍物的另一点的所有可能路径

来自分类Dev

使用任何最新的 N 个标签获取所有行

来自分类Dev

Matlab:如何求矩阵行或列的第n个元素的幂的总和?

Related 相关文章

  1. 1

    如何获得n * m个矩阵行的所有可能总和的列表

  2. 2

    从数字列表中获取所有可能的总和

  3. 3

    创建一个递归函数以获取整数列表中所有可能子集的总和

  4. 4

    获取矩阵中所有可能的行组合

  5. 5

    获取矩阵中所有可能的行组合

  6. 6

    如何从n个列表中形成所有可能的组合

  7. 7

    给定长度为M和N的列表,如何获取具有所有可能对的长度为M * N的列表

  8. 8

    如何找到所有可能的总和等于n的3个数字?

  9. 9

    如何找到数组中N个元素的所有可能总和?

  10. 10

    从列表中获取k个元素的所有可能组合

  11. 11

    获取所有可能的总和和基于值的输出列表

  12. 12

    从 n 个列表中获取任何非零长度的所有可能组合

  13. 13

    如何获得将长度为n的列表划分为m个子列表的所有可能组合

  14. 14

    问题是从列表中的一行添加所有元素并获取总和

  15. 15

    生成所有可能的3个正整数,总和为N

  16. 16

    MySQL查询以获取所有外键及其在m:n表中所有列的总和

  17. 17

    如何获取包含工人所有可能分配的列表?

  18. 18

    获取具有特定总和的范围内n个数字的所有可能排列的算法

  19. 19

    获取所有/某些元素的列表的前 n 个元素

  20. 20

    R:获取所有列表子集的最佳 N 个值

  21. 21

    如何获得矩阵的所有可能置换矩阵

  22. 22

    给定一个成对排序矩阵,如何枚举所有可能的总阶数

  23. 23

    Mongodb:如何获取记录N到M?

  24. 24

    如何获取n个最长的DataFrame条目?

  25. 25

    如何获取`ls`命令的前n行

  26. 26

    解析Scheme中的列表并获取所有数字的总和

  27. 27

    获取从方矩阵的一个点到有障碍物的另一点的所有可能路径

  28. 28

    使用任何最新的 N 个标签获取所有行

  29. 29

    Matlab:如何求矩阵行或列的第n个元素的幂的总和?

热门标签

归档