📜  NumPy – 包含字符串元素的数组的算术运算

📅  最后修改于: 2022-05-13 01:55:24.118000             🧑  作者: Mango

NumPy – 包含字符串元素的数组的算术运算

Numpy 是一个Python库,用于用 C 和Python编写的数组处理。由于矢量化的通用函数,numpy 中的计算比Python中的传统数据结构(如列表、元组、字典等)快得多。有时在处理数据时,我们需要执行算术运算,但由于数据中存在不需要的字符串,我们无法这样做。所以有必要删除它们。在这里,我们将创建一个通用函数来将不需要的字符串替换为 NaN。

解释:
给定一个包含一些不需要的字符串的 numpy 数组。在用户定义的函数中,使用条件语句将不需要的字符串替换为 NaN。 numpy.frompyfunc()用于将用户定义的函数转换为通用函数。然后将 numpy 数组传递给该函数,但数组的数据类型仍然是对象。因此我们需要使用array.astype()将其数据类型转换为浮点数。应该注意的是,NaN 值不能转换为浮点以外的任何其他数据类型。现在我们可以使用内置通用函数的 NaN 安全版本对其执行算术运算。

代码:

# Importing numpy library
import numpy as gfg
  
# Creating array
a = gfg.array([1,2,3,'geeks','for','geeks',4,5])
print(f"Actual array: {a}")
  
# Creating universal function to remove unwanted 
# strings from actual array
def m(a):
    if a == 'geeks'or a=='for':
        return gfg.nan
    else:
        return float(a)
          
# Converting user-defined function to universal function  
b = gfg.frompyfunc(m,1,1)
  
# Calling function
a = b(a)
  
# Changing datatype of array
a = a.astype(float)
print(f"Array after changes: {a}")
  
# Calculating mean of the array
m = gfg.nanmean(a)
print(f"Mean of the array: {m}")
  
# Calculating sum of the array
s = gfg.nansum(a)
print(f"Sum of the array: {s}")
  
# Calculating product of the array
p = gfg.nanprod(a)
print(f"Product of the array: {p}")

输出:

Actual array: ['1' '2' '3' 'geeks' 'for' 'geeks' '4' '5']
Array after changes: [ 1.  2.  3. nan nan nan  4.  5.]
Mean of the array: 3.0
Sum of the array: 15.0
Product of the array: 120.0