如何使用 NumPy 求和函数?
NumPy 的 sum()函数对于在Python中对给定数组的所有元素求和非常有用。在本文中,我们将讨论如何使用此函数以及如何快速使用它来提升代码的功能。
让我们回顾一下如何使用这些函数以及使用这个函数而不是迭代求和的好处。我们先写底层算法自己做简单的求和。这将采用如下函数的形式:
Python3
# 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)))
Python3
# 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 the sum() function
print('The sum of these numbers is ' + str(np.sum(array)))
Python3
# Import NumPy
import numpy as np
# Initialize our test array
array = [0.5, 1.5]
# Call our sum() function
print(np.sum(array))
Python3
# 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))
Python3
# 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))
Python3
# 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))
Python3
# 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
输出:
The sum of your numbers is 227.3
现在我们已经了解了编写这个简单的求和函数需要多少行代码,让我们测试一下 NumPy 的 sum()函数,看看它是如何比较的。
Python3
# 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 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:
在这个例子中,我们将只对一维数组进行另一个简单的求和,就像我们之前看到的那样。不过后面会更精彩!
Python3
# 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:
在此示例中,我们将介绍对二维数组求和。还是很基础的。
Python3
# 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:
让我们尝试使用可选参数来尝试和操作我们的输出。让我们试试axis参数。
Python3
# 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:
让我们尝试使用初始参数来初始化我们的总和值。本质上,初始值被添加到数组元素的总和中。这在使用计数器的某些问题中很有用。
Python3
# 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 的 one()函数来自动创建一个给定长度的数组,并用一个填充。
Python3
# 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