关于numpy/array的一些常识

本文介绍了numpy数组的一些基础知识,包括一维array被视为列向量的特性,如何通过reshape和切片操作改变维度,以及array的可变性。同时,讨论了array与矩阵的区别,如矩阵必须是2维的,而array可以是n维。文中还提到了数组的维度判断,转置操作,以及矩阵的共轭和逆矩阵。最后,通过实例展示了如何使用reshape创建二维或多维数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 一维array是列向量,尽管print出来后是横着显示的,这一点在矩阵计算的时候需要注意:
**输入**import Numpy as np
array = np.arange(20)
array
**输出**:
array([0,  1,  2,  3,  4,
       5,  6,  7,  8,  9,
       10, 11, 12, 13, 14,
       15, 16, 17, 18, 19])
  1. 当.shape后,输出结果的逗号后边没有数字,说明它是一维数组
**输入**:
array.shape
**输出**(20,)

***实际情况中,比如从一组数据中提取X和Y,Y在最后一列,为了Y与其他矩阵的计算,我们想让Y从一维编程二维,好比让这里的(20,)变为(20,1), 除了通过后边介绍的reshape方法,还可以用Y[:,列数-1: 列数]的方法快速构建。

  1. array是可变的:
**输入**:
array[3] = 100
array
**输出**:
array([  0   1   2 100
   4   5   6   7
   8   9  10  11
   12  13  14  15
   16  17  18  19]
  1. 判断两个数组是否相等
    如果用array1 == array2来判断,当array里有很多元素时print出来的结果会有很多个TRUE/FALSE。
    此时就需要.all()和.any()来简化输出,即只输出一个TRUE/FALSE:
    ** (arr1 == arr2).all(): 元素全相等,返回True
    ** (arr1 == arr2).any(): 有一个元素相等,就返回True

  2. 数组!=矩阵
    矩阵包含于数组。矩阵只能是2维的,而数组可以是n维的。矩阵拥有数组的所有性质。

  • 如何判断数组的维度:
    看print的结果,头尾单边有几个方括号,比如第三点的例子中array单边只有一个方括号,所以它是一维数组。
  • 矩阵与数组的性质:
    • 共有性质:
      转置:array/matrix.T
    • 矩阵独有:
      共轭矩阵:matrix.H
      逆矩阵:matrix.I
      点乘: matrix.dot
  • 数组与矩阵的相互转换: np.asmatrix和np.asarray
  1. 创建二及多维数组 - object.reshape
**输入**:
array = np.arange(20).reshape(4,5)
array
**输出**:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])

首先,创建20个整数,然后将数组转换为具有4行和5列的二维数组。若要访问二维数组中的元素,需要为行和列指定索引。

**输入**:
array[3][4]
**输出**19

创建多维数组时,只需让reshape里的参数变为n个即可:

**输入**:
array = np.arange(27).reshape(3,3,3)
array
**输出**:
输出:
array([[[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],

       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23],
        [24, 25, 26]]])

更多关于array性质及numpy包的用法,请戳:numpy中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值