Numpy中的数据
Numpy简介
Python很方便,但也很慢。它允许你访问执行用C等语言编写的代码的库
NumPy是一个库:它为Python中的数学运算提供了一个更快速的替代方案,可以与数字组高效搭配使用 - 如矩阵
导入NumPy
在导入NumPy库时,大多数情况下(包括这里)你会看到的一个约定,是将其命名为np,像这样:
1 | import numpy as np |
标量
NumPy 中的标量 比 Python 中的标量类型更多。不像 Python 只有基本类型 int、float 等,NumPy 可以让你指定有符号和无符号的类型以及不同的大小。因此,除了 Python 的 int,你可以使用 uint8、int8、uint16、int16 等类型。
这些类型很重要,因为你所创建的每个对象(向量、矩阵、张量)最终都会存储标量。而且,当你创建 NumPy 数组时,可以指定类型 - 但是数组中的每个项必须具有相同的类型。在这方面,NumPy 数组更像是C数组,而非 Python 列表。
如果要创建一个包含标量的 NumPy 数组,方法是将值传递给 NumPy 的 array 函数,如下所示:
1 | s = np.array(5) |
打印一对空括号(),这表示它的维度为零
Vectors
1 | 创建一个向量,你可以将 Python 列表传递给 array 函数 |
1 | v = np.array([1,2,3]) |
检查向量的 shape 属性,它将返回表示向量的一维长度的单个数字(3,)
从第二个元素向前访问向量
1 | v = np.array([1,2,3]) |
Matrices
使用NumPy的array函数创建矩阵,跟创建向量一样
创建一个包含数字1到9的3x3矩阵
1 | m = np.array([[1,2,3], [4,5,6], [7,8,9]]) |
检查它的shape属性将返回元组(3, 3),表示它有2个维度,每个的长度为3
张量
张量与向量和矩阵一样,但它们可以有更多的维度。例如,要创建一个 3x3x2x1 的张量
1 | t = np.array([[[[1],[2]],[[3],[4]],[[5],[6]]],[[[7],[8]],\ |
t.shape 会返回(3, 3, 2, 1)
更改形状
有一个一维的向量,但是需要一个二维的矩阵
1 | v = np.array([1,2,3,4]) |
调用 v.shape 会返回 (4,)。但要是你想得到一个 1x4 矩阵呢?你可以使用 reshape 函数,就像这样:
x = v.reshape(1,4)
本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2017/05/18/NumPy中的数据/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
知识 & 情怀 | 二者兼得