【Python数据分析】numpy库的使用-上篇

文章目录

    • numpy介绍
    • numpy创建数组
    • numpy创建数组的属性
    • numpy数组运算
    • numpy数组索引和切片
    • numpy数组的形状变换

numpy介绍

NumPy是一个用于科学计算的Python库,它提供了高性能的多维数组对象和用于处理这些数组的各种工具。NumPy的名称来自于“Numerical Python”的缩写。

NumPy的主要功能包括:

  • 多维数组对象:NumPy提供了多维数组对象,称为ndarray,它是一个由同类型数据组成的表格。ndarray可以包含整数、浮点数等多种数据类型,并支持基本的数学运算和数组操作。

  • 数组操作:NumPy提供了很多数组操作函数,包括数组索引、切片、拼接、分割等,可以方便地对数组进行操作和处理。

  • 线性代数:NumPy提供了线性代数相关的函数,如矩阵乘法、矩阵分解、求解线性方程组等。

  • 随机数生成:NumPy提供了各种随机数生成函数,如正态分布、均匀分布等,可以方便地生成随机数序列。

  • 傅里叶变换:NumPy提供了傅里叶变换相关的函数,可以方便地进行信号处理和图像处理等任务。

由于NumPy提供了高性能的数组操作和数学函数,因此被广泛应用于科学计算、数据分析、机器学习等领域。

在使用numpy之前务必确保已经下载安装了numpy库,如果未安装,请在控制台输入如下命令。

pip install numpy

numpy创建数组

下面介绍NumPy创建数组的几个函数,可以根据需要选择合适的函数创建数组。

  1. array():创建一个数组,可以接受一个序列或嵌套序列作为输入。
import numpy as np

arr = np.array([1, 2, 3])
print(arr)  # 输出 [1 2 3]
  1. zeros():创建一个元素全为0的数组。
import numpy as np

arr = np.zeros((3, 4))
print(arr)  # 输出 [[0. 0. 0. 0.]
            #      [0. 0. 0. 0.]
            #      [0. 0. 0. 0.]]

  1. ones():创建一个元素全为1的数组。
import numpy as np

arr = np.ones((2, 3))
print(arr)  # 输出 [[1. 1. 1.]
            #      [1. 1. 1.]]

  1. empty():创建一个未初始化的数组,元素的值不确定。
import numpy as np

arr = np.empty((2, 3))
print(arr)  # 输出 [[4.67296746e-307 6.90583476e-310 1.69759663e-307]
            #      [1.69109977e-306 7.56595733e-307 1.37961302e-306]]

  1. arange():创建一个一维数组,其中的元素是指定范围内的整数。
import numpy as np

arr = np.arange(10)
print(arr)  # 输出 [0 1 2 3 4 5 6 7 8 9]

  1. linspace():创建一个一维数组,其中的元素是在指定范围内均匀分布的数值。
import numpy as np

arr = np.linspace(0, 1, 5)
print(arr)  # 输出 [0.   0.25 0.5  0.75 1.  ]

numpy创建数组的属性

以下是NumPy数组的几个常用属性,可以使用这些属性来获取数组的形状、维度、元素个数和数据类型等信息。

  1. shape:返回一个元组,表示数组的形状,即每个维度上的元素个数。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)  # 输出 (2, 3)

  1. ndim:返回一个整数,表示数组的维度数。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ndim)  # 输出 2

  1. size:返回一个整数,表示数组中的元素总数。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.size)  # 输出 6

  1. dtype:返回一个描述数组中元素类型的对象。
import numpy as np

arr = np.array([1, 2, 3], dtype=float)
print(arr.dtype)  # 输出 float64

  1. itemsize:返回一个整数,表示数组中每个元素的字节大小。
import numpy as np

arr = np.array([1, 2, 3], dtype=float)
print(arr.itemsize)  # 输出 8

  1. nbytes:返回一个整数,表示数组中所有元素所占用的字节数。
import numpy as np

arr = np.array([1, 2, 3], dtype=float)
print(arr.nbytes)  # 输出 24

numpy数组运算

  1. 数组与标量的运算:可以对数组中的每个元素执行加、减、乘、除等运算。
import numpy as np

arr = np.array([1, 2, 3])
arr = arr + 1
print(arr)  # 输出 [2 3 4]

  1. 数组间的运算:可以对两个数组进行加、减、乘、除等运算,要求两个数组的形状相同。
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = arr1 + arr2
print(arr3)  # 输出 [5 7 9]

  1. 数组的逻辑运算:可以对数组中的每个元素进行逻辑运算,并返回一个布尔类型的数组。
import numpy as np

arr = np.array([1, 2, 3])
arr2 = arr > 2
print(arr2)  # 输出 [False False True]

  1. 数组的广播运算:可以对形状不同的数组进行运算,系统会自动将数组进行扩展以满足运算要求。
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([[4], [5], [6]])
arr3 = arr1 * arr2
print(arr3)  # 输出 [[ 4  8 12]
             #      [ 5 10 15]
             #      [ 6 12 18]]

  1. 数组的统计运算:可以对数组中的元素进行统计计算,如求和、均值、标准差等。
import numpy as np

arr = np.array([1, 2, 3])
sum = arr.sum()
mean = arr.mean()
std = arr.std()
print(sum, mean, std)  # 输出 6 2.0 0.816496580927726

numpy数组索引和切片

以下是NumPy数组的一些常见索引和切片操作,可以根据需要选择合适的方式来访问数组中的元素。

  1. 数组的索引:可以使用索引来访问数组中的单个元素。
import numpy as np

arr = np.array([1, 2, 3])
print(arr[0])  # 输出 1

  1. 多维数组的索引:可以使用多个索引来访问多维数组中的单个元素。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 1])  # 输出 2

  1. 数组的切片:可以使用切片来访问数组中的多个元素。
import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4])  # 输出 [2 3 4]

  1. 多维数组的切片:可以使用多个切片来访问多维数组中的多个元素。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[:2, 1:])  # 输出 [[2 3]
                    #      [5 6]]

  1. 数组的花式索引:可以使用数组索引来访问数组中的多个元素。
import numpy as np

arr = np.array([1, 2, 3, 4, 5])
idx = np.array([1, 3])
print(arr[idx])  # 输出 [2 4]

numpy数组的形状变换

NumPy提供了reshape()函数来改变数组的形状,常用于将数组从一种形状转换为另一种形状。
下面我们一起看看如何使用。

  1. 将一维数组转换为二维数组
    可以使用reshape()函数将一维数组转换为二维数组,其中第一个参数表示新数组的行数,第二个参数表示新数组的列数。
import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = arr.reshape(2, 3)
print(new_arr)
# 输出
# [[1 2 3]
#  [4 5 6]]
  1. 将多维数组转换为一维数组
    可以使用reshape()函数将多维数组转换为一维数组,其中可以只指定一维的大小,而将其余维度用-1表示,这样NumPy会自动计算出新数组的大小。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
new_arr = arr.reshape(-1)
print(new_arr)
# 输出 [1 2 3 4 5 6]

  1. 将数组扁平化为一维数组
    可以使用ravel()函数将多维数组扁平化为一维数组,这个函数会返回一个新的一维数组,不会修改原始数组。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
new_arr = arr.ravel()
print(new_arr)
# 输出 [1 2 3 4 5 6]

  1. 更改数组的维数
    可以使用reshape()函数来更改数组的维数,其中可以指定-1来表示NumPy需要自动计算出新数组的大小。
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
new_arr = arr.reshape(3, -1)
print(new_arr)
# 输出
# [[1 2]
#  [3 4]
#  [5 6]]

以上是python中numpy库的一个基础使用,下一篇会介绍numpy的其他使用方法。如果你对numpy感兴趣,不妨点个赞和收藏支持一下。

同时欢迎大家订阅专栏python-数据分析,其中有numpy库的具体使用方法。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年5月23日
下一篇 2023年5月23日

相关推荐