04 Numpy数组索引Numpy支持类似list的定位操作 , 示例代码如下:
import numpy as npmatrix = np.array([[1,2,3],[20,30,40]])print(matrix[0,1])得到的结果是2 。
上述代码中的matrix[0,1] , 0代表的是行 , 在Numpy中 , 0代表起始的第一个 , 所以取的是第1行 , 之后的1代表的是列 , 所以取的是第2列 。 那么 , 最后的输出结果是取第一行第二列 , 也就是2这个值了 。
Numpy支持类似list的切片操作 , 示例代码如下:
import numpy as np matrix = np.array([[5, 10, 15], [20, 25, 30], [35, 40, 45] ])print(matrix[:,1])print(matrix[:,0:2])print(matrix[1:3,:])print(matrix[1:3,0:2])上述的代码中
矩阵运算(加、减、乘、除) , 在本书中将严格按照数学公式来进行演示 , 即两个矩阵的基本运算必须具有相同的行数与列数 。 本例只演示两个矩阵相减的操作 , 其他的操作读者可以自行测试 。 示例代码如下:
import numpy as npmyones = np.ones([3,3])myeye = np.eye(3) #生成一个对角线的值为1 , 其余值都为0的三行三列矩阵print(myeye)print(myones-myeye)输出结果如下:
[[ 1. 0. 0.][ 0. 1. 0.][ 0. 0. 1.]][[ 0. 1. 1.][ 1. 0. 1.][ 1. 1. 0.]]提示:numpy.eye(N, M=None, k=0, dtype=<type 'float'>)中第一个参数输出矩阵(行数=列数) , 第三个参数默认情况下输出的是对角线的值全为1 , 其余值全为0 。
除此之外 , Numpy还预置了很多函数 , 使用这些函数可以作用于矩阵中的每个元素 。
Numpy预置函数及说明:
1. 矩阵之间的点乘
矩阵真正的乘法必须满足第一个矩阵的列数等于第二个矩阵的行数 , 矩阵乘法的函数为dot 。 示例代码如下:
import numpy as npmymatrix = np.array([[1,2,3],[4,5,6]])a = np.array([[1,2],[3,4],[5,6]])print(mymatrix.shape[1] == a.shape[0])print(mymatrix.dot(a))其输出结果如下:
[[22 28] [49 64]]上述示例代码的原理是将mymatrix的第一行[1,2,3]与a矩阵的第一列[1,3,5]相乘然后相加 , 接着将mymatrix的第一行[1,2,3]与a矩阵的第二列[2,4,6]相乘然后相加 , 以此类推 。
2. 矩阵的转置
矩阵的转置是指将原来矩阵中的行变为列 。 示例代码如下:
import numpy as npa = np.array([[1,2,3],[4,5,6]])print(a.T)输出结果如下:
[[1 4] [2 5] [3 6]]3. 矩阵的逆
需要首先导入numpy.linalg , 再用linalg的inv函数来求逆 , 矩阵求逆的条件是矩阵的行数和列数必须是相同的 。 示例代码如下:
import numpy as npimport numpy.linalg as lgA = np.array([[0,1],[2,3]])invA = lg.inv(A)print(invA)print(A.dot(invA))输出结果如下:
[[-1.5 0.5][ 1. 0. ]]逆矩阵就是 , 原矩阵A.dot(invA)以及逆矩阵invA.dot(A)的结果都为单位矩阵 。 并不是所有的矩阵都有逆矩阵 。
Numpy ndarray数据类型可以通过参数dtype进行设定 , 而且还可以使用参数astype来转换类型 , 在处理文件时该参数会很实用 。 注意 , astype调用会返回一个新的数组 , 也就是原始数据的备份 。
比如 , 将String转换成float 。 示例代码如下:
vector = numpy.array([1, 2, 3])vector = vector.astype(float)注意:在上述例子中 , 如果字符串中包含非数字类型 , 那么从string转换成float就会报错 。
涂铭 , 阿里巴巴数据架构师 , 对大数据、自然语言处理、图像识别、Python、Java相关技术有深入的研究 , 积累了丰富的实践经验 。
张修鹏 , 毕业于中南大学 , 阿里巴巴技术发展专家 , 长期从事云计算、大数据、人工智能与物联网技术的商业化应用 , 在阿里巴巴首次将图像识别技术引入工业 , 并推动图像识别产品化、平台化 。
本文摘编自《深度学习与图像识别:原理与实践》 , 经出版方授权发布 。
- c语言用什么软件编辑,查找c语言答案的软件
- c语言比较三个数大小输出最小数,三个数比大小c语言输出最大值
- c语言强制类型转换详解,c语言类型转换注意点
- 瑞士说什么语言
- 河北省高考8624名考生成绩为0分,其中文科6475名,理科2149。你怎么看?
- 感谢教师节感恩老师的语言
- 汉语言文学专业就业方向 毕业后做什么工作
- 千万别学汉语言文学专业为什么 就业前景怎么样
- 最能打动人心的情话 爱情语言经典表白短句
- 南非官方语言介绍
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
