Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.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中在数组中添加元素_Python_Arrays_Numpy - Fatal编程技术网

在python中在数组中添加元素

在python中在数组中添加元素,python,arrays,numpy,Python,Arrays,Numpy,我有一个numpy数组,里面满是我想相互添加的数字 例如,如果阵列为: my_list =np.array([2,3,4,5,6]). 我想将3添加到2(索引1到0)和4添加到3(索引2到1),以此类推 对于这方面的任何帮助或想法都将是非常好的,因为我对python和编码非常陌生,而且我相当固执。这里有一个解决方案: nums = [2,3,4,5,6] sums = [] for i in range(0, len(nums)): if(i!=0): sums.

我有一个numpy数组,里面满是我想相互添加的数字

例如,如果阵列为:

my_list =np.array([2,3,4,5,6]). 
我想将3添加到2(索引1到0)和4添加到3(索引2到1),以此类推

对于这方面的任何帮助或想法都将是非常好的,因为我对python和编码非常陌生,而且我相当固执。

这里有一个解决方案:

nums = [2,3,4,5,6]
sums = []


for i in range(0, len(nums)):
    if(i!=0):
        sums.append(nums[i] + nums[i-1])

print(sums)
输出:

[5, 7, 9, 11]

一种方法是使用:

另一种方法是使用内置的
zip

sums = [a + b for a, b in zip(nums, nums[1:])]
最后,如果您使用的是
numpy
,请按照评论中的要求:

import numpy as np
nums = np.array([2, 3, 4, 5, 6])
sums = nums[:-1] + nums[1:]

至于速度,只要您的输入数组已经是
numpy.array
,那么
numpy
解决方案基本上是无与伦比的。如果不是,则将其转换为一个数组,
zip
pairwise
的速度大致相同。使用Python 3.6.3完成的测试

测试输入:

import random
x = [random.sample(range(1000), n) for n in range(1, 1000, 50)]

最后,
numpy
还具有
O(n)
行为(请注意,数组的长度比以前多了100个),其常数正好低了很多:


你能告诉我们你被困在哪里吗?比起复制粘贴正确的解决方案,你将从纠正错误中学到更多。我不确定我是否理解你想要做什么。您能为
[2,3,4,5,6]
列表发布预期结果吗?它必须是while循环吗?您有数组还是列表?为什么要循环一段时间?这几乎是最错误的方法。欢迎来到这里。请花点时间阅读该页面上的链接和其他链接。花点时间练习这些例子-它会让你了解Python帮助你解决问题的工具。@downvoter如果我的帖子有什么问题,我很乐意修复它(不是downvoter,只是迟到了)。我喜欢你的答案,但是我认为这个问题有一个bug,因为它指的是numpy,nums应该已经在一个数组中了,所以修复了这个问题。我仍然认为这个答案是正确的。
import random
x = [random.sample(range(1000), n) for n in range(1, 1000, 50)]