【发布时间】:2020-12-09 15:55:57
【问题描述】:
所以,我有一个数字列表
weird_list = [800153196,
946067665,
827629917,
868941741,
875745873,
926109150,
1353347195,
1003235074,
1053666891,
1442194993,
1924716858,
1060724069,
1182240731,
1646547575,
1215762661,
1520107722,
1512568609,
1534064291,
1549459216,
1773697582,
1853820087,
1696910852,
1563415785,
1692314635,
1627783113]
我的目标是获得此列表每对的总和的 2d np.array。
例子:
weird_list = [1, 2, 3]
resulting_array = [[0, 1, 2],
[1, 2, 3],
[2, 3, 4]]
我编写了这个函数,它适用于较小的数字,但不是必需的,因为我在具有较大数字的数组上进行了测试。这个数组的问题在于我以某种方式获得了 negative 数字。
def array_sum(i_list):
i_array = np.array(i_list) # converts list to np.array
i_array_rs1 = i_array.reshape(1, -1)
i_array_rs2 = i_array.reshape(-1, 1)
i_array_rs_SUM = i_array_rs1 + i_array_rs2
print(i_array_rs_SUM) # prints the sum of reshaped arrays, which doesn't work for my input list
我还尝试了一些带有较小/较大数字列表的示例
low_list = [0, 1, 2, 3]
ex_list = []
weird_list_div_10 = []
weird_list_mult_10 = []
for i in range(len(weird_list)):
ex_list.append(i)
weird_list_div_10.append(weird_list[i] // 10)
weird_list_mult_10.append(weird_list[i] * 10)
【问题讨论】:
-
如果你使用 numpy int32 数组,你的一些结果会溢出。在这些情况下,结果可能是否定的。 int64 不应该溢出。检查数组是哪个 dtype
标签: python python-3.x numpy numpy-ndarray