Numpy中的数据

发布 : 2017-05-18 分类 : 深度学习 浏览 :

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
2
3
4
v = np.array([1,2,3])

# 打印数据的形状
print(v.shape)

检查向量的 shape 属性,它将返回表示向量的一维长度的单个数字(3,)

从第二个元素向前访问向量

1
2
3
v = np.array([1,2,3])

print(v[1:])

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
2
t = np.array([[[[1],[2]],[[3],[4]],[[5],[6]]],[[[7],[8]],\
[[9],[10]],[[11],[12]]],[[[13],[14]],[[15],[16]],[[17],[17]]]])

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 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹