NumPy中的np.ones使用:
np.ones
是 NumPy 中用于创建全为 1
的数组的函数。以下是其详细用法和示例:
1. 基本语法:
np.ones(shape, dtype=None, order='C')
np.ones(shape, dtype=None, order='C')
shape
:数组的形状,可以是整数(如5
)或元组(如(2, 3)
)。dtype
(可选):数组的数据类型,默认是float64
。order
(可选):内存布局,'C'
表示行优先,'F'
表示列优先。
2. 创建一维数组:
import numpy as np
# 创建长度为5的一维数组,元素全为1.0(默认浮点数)
arr1 = np.ones(5)
print(arr1)
# 输出: [1. 1. 1. 1. 1.]
# 指定整数类型
arr2 = np.ones(5, dtype=int)
print(arr2)
# 输出: [1 1 1 1 1]
import numpy as np
# 创建长度为5的一维数组,元素全为1.0(默认浮点数)
arr1 = np.ones(5)
print(arr1)
# 输出: [1. 1. 1. 1. 1.]
# 指定整数类型
arr2 = np.ones(5, dtype=int)
print(arr2)
# 输出: [1 1 1 1 1]
3. 创建多维数组:
通过元组指定形状:
# 创建2x3的二维数组
arr_2d = np.ones((2, 3))
print(arr_2d)
# 输出:
# [[1. 1. 1.]
# [1. 1. 1.]]
# 创建3x2x4的三维数组
arr_3d = np.ones((3, 2, 4))
print(arr_3d.shape) # 输出: (3, 2, 4)
# 创建2x3的二维数组
arr_2d = np.ones((2, 3))
print(arr_2d)
# 输出:
# [[1. 1. 1.]
# [1. 1. 1.]]
# 创建3x2x4的三维数组
arr_3d = np.ones((3, 2, 4))
print(arr_3d.shape) # 输出: (3, 2, 4)
4. 与其他函数的对比:
函数 | 用途 | 示例 |
---|---|---|
np.ones() | 创建全为 1 的数组 | np.ones((2, 3)) → [[1,1,1],[1,1,1]] |
np.zeros() | 创建全为 0 的数组 | np.zeros(5) → [0, 0, 0, 0, 0] |
np.full() | 创建全为指定值的数组 | np.full((2, 2), 5) → [[5,5],[5,5]] |
5. 应用场景
- 初始化矩阵:作为占位符或基准值。
- 计算权重:在机器学习中作为初始权重。
- 掩码数组:用于布尔运算。
例如,创建一个全 1
的 3×3 矩阵并与另一个矩阵相加:
a = np.ones((3, 3))
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a + b)
# 输出:
# [[ 2. 3. 4.]
# [ 5. 6. 7.]
# [ 8. 9. 10.]]
a = np.ones((3, 3))
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a + b)
# 输出:
# [[ 2. 3. 4.]
# [ 5. 6. 7.]
# [ 8. 9. 10.]]
6. 注意事项
- 数据类型:默认是浮点数(
float64
),指定整数需显式设置dtype
。 - 性能:NumPy 数组比 Python 列表更高效,适合大规模数值计算。