文本大数据之Numpy
初识Nmupy
NumPy是一个开源的Python科学计算库。它的主要功能之一是用来操作数组和矩阵;是科学计算、深度学习等高端领域的必备工具;使用TensorFlow、Caffe框架训练神经网络模型时,需要进行大量复杂的运算,可以直接调用NumPy里面的API。NumPy还包含了很多使用的数学函数,覆盖了很多的数学领域,比如线性代数、傅里叶变换、随机数生成。
NumPy基础
NumPy对象
在NumPy里,ndarray是整个numpy的基础,ndarray是N-dimensional array的缩写,是一种由同质元素组成的多维数组。元素数量是事先准备好的,同质指的是所有的元素类型一致。
它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。
ndarray中的每个元素在内存中使用相同大小的块。
ndarray中的每个元素是数据类型对象的对象(称为 dtype)。
从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示。
基本的Nmupy中的数组函数创建的如下:
numpy.array
它从任何暴露数组接口的对象,或从返回数组的任何方法创建一个ndarray
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数 | 描述 |
---|---|
object | 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列 |
dtype | 数组的所需数据类型 |
copy | 默认为true,对象是否被复制 |
order | C(按行)、F(按列)或A(任意,默认)。 |
subok | 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类 |
ndimin | 指定返回数组的最小维数 |
示例代码:
import numpy as py
a = [1,2,3,4,5,6,7,8,9]
print(a)
#结果如下
#[1,2,3,4,5,6,7,8,9]
a * 2
#结果如下
#[1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]
print(type(a)
#结果如下
#<class 'list>
#把普通python中的list转换成ndarray
A = np.array(a)
print(A)
A
#print(A)结果如下
#[1,2,3,4,5,6,7,8,9]
#A结果如下
#array([1,2,3,4,5,6,7,8,9])
print(type(A))
#结果如下
#<class 'numpy.ndarray'>
A * 2
#结果如下
#array([2,4,6,8,10,12,14,16,18])
#直接创建一维数组
b = np.array([1,2,3,4,5])
print(b)
print(type(b))
#print(b)结果如下
#[1 2 3 4 5]
#print(type(b))结果如下
#<class 'numpy.ndarray'>
b * 6
#结果如下
#array([6,12,18,24,30])
NumPy数据类型
ndarray数据类型由一个叫dtype的numpy对象指定,每个ndarray只有一种dtype类型。数据类型对象描述了对应于数组的固定内存块的解释,取决于以下方面:
1.数据类型(整数、浮点或者 Python 对象)
2.数据大小
3.字节序(小端或大端)
4.在结构化类型的情况下,字段的名称,每个字段的数据类型,和每个字段占用的内存块部分。
5.如果数据类型是子序列,它的形状和数据类型。
字节顺序取决于数据类型的前缀<或>。<意味着编码是小端(最小有效字节存储在最小地址中)。>意味着编码是大端(最大有效字节存储在最小地址中)。
NumPy数组属性
属性 | 描述 |
---|---|
ndarry.shape | 这一数组属性返回一个包含数组维度的元组,它也可以用于调整数组大小 |
ndarray.ndim | 这一数组属性返回数组的维数 |
ndarray.itemsize | 数组中每个元素的字节大小 |
ndarray.size | 数组元素的总个数 |
ndarray.dtype | 数组元素的数据类型,dtype类型可以用于创建数组中 |
ndarray.data | 包含实际数组元素的缓冲区地址 |
ndarray.flat | 数组元素的迭代器 |
数组的维数和
示例1如下:
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.shape)
输出如下:
(2,3)
示例2如下:
import