python里面的numpy

NumPy(Numerical Python)是 Python 中用于科学计算的基础库,它提供了高性能的多维数组对象(ndarray)以及处理这些数组的各种工具。以下是对 NumPy 常见用法的详细讲解:

1. 安装与导入

在使用 NumPy 之前,需要先安装它。如果你使用的是 Anaconda 环境,NumPy 已经默认安装;如果是普通 Python 环境,可以使用 pip 进行安装:

pip install numpy

安装完成后,在 Python 代码中导入 NumPy:

import numpy as np

通常使用 np 作为 NumPy 的别名,这是一种约定俗成的做法。

2. 创建数组

从列表创建数组

可以使用 np.array() 函数将 Python 列表转换为 NumPy 数组。

import numpy as np

# 创建一维数组
list1 = [1, 2, 3, 4, 5]
arr1 = np.array(list1)
print(arr1)  # 输出: [1 2 3 4 5]

# 创建二维数组
list2 = [[1, 2, 3], [4, 5, 6]]
arr2 = np.array(list2)
print(arr2)
# 输出:
# [[1 2 3]
#  [4 5 6]]
使用内置函数创建数组
  • np.zeros():创建指定形状的全零数组。
zeros_arr = np.zeros((3, 4))
print(zeros_arr)
# 输出:
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]
  • np.ones():创建指定形状的全一数组。
ones_arr = np.ones((2, 3))
print(ones_arr)
# 输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]
  • np.arange():类似于 Python 的 range() 函数,创建一个等差数列数组。
arange_arr = np.arange(0, 10, 2)
print(arange_arr)  # 输出: [0 2 4 6 8]
  • np.linspace():创建一个在指定区间内均匀分布的数组。
linspace_arr = np.linspace(0, 1, 5)
print(linspace_arr)  # 输出: [0.   0.25 0.5  0.75 1.  ]

3. 数组的属性

  • shape:返回数组的形状。
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)  # 输出: (2, 3)
  • dtype:返回数组中元素的数据类型。
print(arr.dtype)  # 输出: int64
  • ndim:返回数组的维度。
print(arr.ndim)  # 输出: 2

4. 数组的索引和切片

一维数组
arr = np.arange(10)
print(arr[3])  # 输出: 3
print(arr[2:5])  # 输出: [2 3 4]
二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[1, 2])  # 输出: 6
print(arr[0:2, 1:3])
# 输出:
# [[2 3]
#  [5 6]]

arr[0:2, 1:3] 具体含义:

  • 行切片 0:2
    • 切片操作中的第一个参数 0:2 用于指定行的选取范围。在 Python 的切片语法里,冒号 : 前面的数字表示起始索引(包含该索引对应的元素),冒号后面的数字表示结束索引(不包含该索引对应的元素)。
    • 所以 0:2 表示从第 0 行开始(索引从 0 开始计数),到第 2 行之前结束,即选取第 0 行和第 1 行。
  • 列切片 1:3
    • 切片操作中的第二个参数 1:3 用于指定列的选取范围。同样根据 Python 切片语法,1:3 表示从第 1 列开始(从0开始算),到第 3 列之前结束,即选取第 1 列和第 2 列。

5. 数组的运算

算术运算

NumPy 数组支持基本的算术运算,这些运算会逐元素进行。

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(arr1 + arr2)  # 输出: [5 7 9]
print(arr1 * arr2)  # 输出: [4 10 18]
矩阵运算

使用 np.dot() 函数进行矩阵乘法。

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
result = np.dot(arr1, arr2)
print(result)
# 输出:
# [[19 22]
#  [43 50]]

6. 数组的统计函数

  • np.sum():计算数组元素的总和。
arr = np.array([1, 2, 3, 4, 5])
print(np.sum(arr))  # 输出: 15
  • np.mean():计算数组元素的平均值。
print(np.mean(arr))  # 输出: 3.0
  • np.max()np.min():分别返回数组中的最大值和最小值。
print(np.max(arr))  # 输出: 5
print(np.min(arr))  # 输出: 1

7. 数组的形状操作

  • reshape():改变数组的形状。
arr = np.arange(12)
new_arr = arr.reshape(3, 4)
print(new_arr)
# 输出:
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]
  • flatten()ravel():将多维数组转换为一维数组。
print(new_arr.flatten())  # 输出: [ 0  1  2  3  4  5  6  7  8  9 10 11]

以上是 NumPy 的一些常见用法,NumPy 还有很多其他强大的功能,如随机数生成、线性代数运算等,可以根据具体需求进一步学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值