NumPy full_like() 函数 – 返回与给定数组具有相同形状和类型的完整数组

NumPy 是一个强大且广泛使用的 Python 科学计算库。它提供了许多用于处理数值数据和数组的函数和工具,包括full_like()函数。此函数允许您创建一个与给定数组具有相同形状和数据类型的新数组,但填充特定值。

这在多种情况下都很有用,例如当您需要创建特定形状和类型的数组来保存占位符或默认值时。full_like()在本文中,我们将详细探讨该函数的使用和语法,并提供如何在实践中使用它的示例。

另请阅读:NumPy full() 函数

NumPy 中的 full_like() 是什么?

full_like()是 NumPy 库中的一个函数,它创建一个与给定数组具有相同形状和数据类型的新数组,但填充指定值。它接受两个必需的参数:

  1. a:用作新数组的形状和数据类型模板的数组。
  2. fill_value:填充新数组的值。

Numpy full_like() 的语法

numpy.full_like(a, fill_value, dtype=None, order='K', subok=True, shape=None)

参数

  • a: 类似数组
    • 必需的
    • 返回数组的这些相同特征由 a 的形状和数据类型定义。
  • 填充值:类似数组
    • 必需的
    • 要初始化新数组元素的值。
  • dtype:数据类型
    • 选修的
    • 覆盖结果的数据类型。
  • 顺序:{‘C’、’F’、’A’ 或 ‘K’}
    • 选修的
    • 更改结果的内存布局。“C”代表 C 阶,“F”代表 F 阶,“A”代表“C”,除非“a”是 Fortran 连续的。“K”表示与 a 非常相似的布局。
  • 苏博克:布尔
    • 选修的
    • 新生成的数组将使用 if True 的子类类型;否则,将使用基类数组。通常设置为 True。
  • 形状:int 或整数序列
    • 选修的
    • 更改结果的形式。如果 order=’K’ 并且维数保持不变,将尝试维持顺序;否则,假定 order=’C’。

Numpy full_like() 的实现

在实现该功能之前,请确保在 IDE 中导入 NumPy 包。为此,请在 IDE 中运行以下代码行。

import numpy as np

示例 1. 仅传递必需的参数

x = ([1,2,3],[4,4,6])
print(x)
print("\n")
np.full_like(x, 3)
 
 
y = ([1,2,3],
     [4,5,6])
print(y)
print("\n")
np.full_like(y,([9,8,7],[6,5,4]))
实施例1

示例 2. 传递其他参数

w = ([1,2,3],[4,5,6],[7,8,9])
print(w)
print("\n")
np.full_like(w, 5, dtype=np.float16, order='C')
 
z = ([1,2,3],[4,5,6])
print(z)
print("\n")
np.full_like(z, (1+3j), dtype = float, order='F')
实施例2

示例 3:使用 numpy.full_like() 将它们放在一起

这是使用 numpy.full_like() 方法的更完整示例,其中包括使用它的所有不同方式。

import numpy as np
 
# Create a random array of integers from 0 to 9
a = np.random.randint(10, size=(2, 3, 4))
print(f"Original array: \n{a}")
 
# Create a new array of zeros with the same shape and data type as a
b = np.full_like(a, 0)
print(f"Array of zeros with same shape and data type as a: \n{b}")
 
# Create a new array of ones with the same shape and data type as a
c = np.full_like(a, 1, dtype=np.float64)
print(f"Array of ones with same shape and data type as a, but with data type float64: \n{c}")
 
# Create a new array with the same shape and data type as a, but filled with the maximum value of a's data type
d = np.full_like(a, np.amax(a))
print(f"Array with same shape and data type as a, filled with the maximum value of a's data type: \n{d}")
 
# Create a new array with the same shape and data type as a, but filled with the minimum value of a's data type
e = np.full_like(a, np.amin(a))
print(f"Array with same shape and data type as a, filled with the minimum value of a's data type: \n{e}")

输出

Original array:
[[[2 9 7 3]
  [9 8 6 4]
  [1 0 8 9]]
 
 [[3 9 9 7]
  [0 8 0 3]
  [5 5 4 3]]]
Array of zeros with same shape and data type as a:
[[[0 0 0 0]
  [0 0 0 0]
  [0 0 0 0]]
 
 [[0 0 0 0]
  [0 0 0 0]
  [0 0 0 0]]]
Array of ones with same shape and data type as a, but with data type float64:
[[[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]
 
 [[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]]
Array with same shape and data type as a, filled with the maximum value of a's data type:
[[[9 9 9 9]
  [9 9 9 9]
  [9 9 9 9]]
 
 [[9 9 9 9]
  [9 9 9 9]
  [9 9 9 9]]]
Array with same shape and data type as a, filled with the minimum value of a's data type:
[[[0 0 0 0]
  [0 0 0 0]
  [0 0 0 0]]
 
 [[0 0 0 0]
  [0 0 0 0]
  [0 0 0 0]]]

结论

总之,full_like()NumPy 中的函数是一个有用的工具,用于创建与给定数组具有相同形状和数据类型但填充特定值的新数组。这在多种情况下都很有用,例如当您需要创建特定形状和类型的数组来保存占位符或默认值时。无论您是在科学计算中处理数值数据,还是只需要在 Python 脚本中操作数组,该full_like()函数都是您工具包的宝贵补充。

参考

https://numpy.org/doc/stable/reference/ generated/numpy.full_like.html