如何使用NumPy的求和函数
NumPy的sum()函数在Python中对给定数组的所有元素进行求和非常有用。在这篇文章中,我们将介绍如何利用这个函数,以及如何快速使用它来推进你的代码的功能。
让我们来看看如何使用这些函数以及使用这个函数而不是迭代求和的好处。首先,让我们自己来写底层算法来做简单的求和。这将采取如下的函数形式。
# Let's define our function
# Parameters: Input Array
def sum(array):
# Set variable for our final answer
sum = 0
# Parse through our array
for i in array:
# Continuously add current element
# to final sum
sum += i
# Return our sum
return sum
# Create a test array
testArray = [1, 3, 34, 92, 29, 48, 20.3]
# Test our function
print('The sum of your numbers is ' + str(sum(testArray)))
输出:
The sum of your numbers is 227.3
现在我们已经看到了写这个简单的求和函数需要多少行,让我们测试一下NumPy的sum()函数,看看它是如何比较的。
# Import NumPy Library
import numpy as np
# Let's begin with an example array
# Initialize our array
array = [1, 4, 2.5, 3, 7.4, 8]
# Utilize the sum() function
print('The sum of these numbers is ' + str(np.sum(array)))
输出:
The sum of these numbers is 25.9
让我们再看一些例子来了解这个函数的用法。在进一步讨论之前,需要注意的是,如果用一个二维数组调用sum()函数,sum()函数将返回该数组中所有元素的总和。
示例 1:
在这个例子中,我们只是对一个一维数组做一个简单的求和,就像我们以前看到的那样。不过,后面会有更精彩的内容!
# Import NumPy
import numpy as np
# Initialize our test array
array = [0.5, 1.5]
# Call our sum() function
print(np.sum(array))
输出:
2.0
示例 2:
在这个例子中,我们将讨论二维数组的求和。还是很基本的。
# Import NumPy Library
import numpy as np
# Initialize our array
array = [[1, 3.4, 4.5], [3.45, 5.6, 9.8],
[4.5, 5, 6.3]]
# Call our sum() function
print(np.sum(array))
输出:
43.55
示例 3:
让我们尝试使用可选参数来尝试和操作我们的输出。让我们尝试一下轴参数。
# Import NumPy
import numpy as np
# Initialize our array
array = [[0, 1], [0, 5]]
# Let's say we want to sum each sub array
# Sums will be returned separately in array
# format Call sum() function
print(np.sum(array, axis = 1))
输出:
[1 5]
示例 4:
让我们尝试使用初始参数来初始化我们的和值。从本质上讲,初始值被添加到数组元素的总和中。这在某些利用计数器的问题上是很有用的。
# Import NumPy Library
import numpy as np
# Initialize our array
array = [1.5, 3, 5.6]
# Call our sum() function
# initial = 3
print(np.sum(array, initial = 3))
输出:
13.1
示例 5:
如果和的累加器太小,那么我们就会出现溢出的问题。虽然这不会直接出错,但我们会得到结果不可靠的问题。让我们来看看一个例子。我们将使用NumPy的 ones() 函数来自动创建一个给定长度的数组,其中充满了1。
# Import NumPy Library
import numpy as np
# Initialize our array
array = np.ones(250, dtype=np.int8)
# Call our sum() function with a specified
# accumulator type
print(np.sum(array, dtype=np.int8))
# Expected Output: 250
输出:
-6