- 一维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])
- 当.shape后,输出结果的逗号后边没有数字,说明它是一维数组
**输入**:
array.shape
**输出**:
(20,)
***实际情况中,比如从一组数据中提取X和Y,Y在最后一列,为了Y与其他矩阵的计算,我们想让Y从一维编程二维,好比让这里的(20,)变为(20,1), 除了通过后边介绍的reshape方法,还可以用Y[:,列数-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])
-
判断两个数组是否相等
如果用array1 == array2来判断,当array里有很多元素时print出来的结果会有很多个TRUE/FALSE。
此时就需要.all()和.any()来简化输出,即只输出一个TRUE/FALSE:
** (arr1 == arr2).all(): 元素全相等,返回True
** (arr1 == arr2).any(): 有一个元素相等,就返回True -
数组!=矩阵
矩阵包含于数组。矩阵只能是2维的,而数组可以是n维的。矩阵拥有数组的所有性质。
- 如何判断数组的维度:
看print的结果,头尾单边有几个方括号,比如第三点的例子中array单边只有一个方括号,所以它是一维数组。 - 矩阵与数组的性质:
- 共有性质:
转置:array/matrix.T - 矩阵独有:
共轭矩阵:matrix.H
逆矩阵:matrix.I
点乘: matrix.dot
- 共有性质:
- 数组与矩阵的相互转换: np.asmatrix和np.asarray
- 创建二及多维数组 - 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中文网