参考来源:点击打开链接
本文主要分为以下几个部分:
- Numpy--简介 (Introduction)
- Numpy--Ndarray对象 (Ndarray object)
- Numpy--数据类型 (Data types)
- Numpy--数组属性 (Array attributes)
- Numpy--数组创建例程 (Array creation routines)
- Numpy--从现有数据创建数组 (Array from existing data)
一. Numpy --- 简介
Numpy--Numerical Python,是一个基于Python的可以存储和处理大型矩阵的库。几乎是Python 生态系统的数值计算的基石,例如Scipy,Pandas,Scikit-learn,Keras等都基于Numpy。使用Numpy, 可以进行:
- 数组和逻辑运算
- 傅里叶变换和图形操作实例
- 线性代数相关的运算操作
Numpy与Mat-plotlib(基于Python的绘图库)和Scipy(包括统计, 优化,整合和线性代数等模块)的结合使用。由于基于Python并开源,因而可以替代Matlab,成为一种更加完整的体系。
This combination is widely used as a replacement for MatLab, a popular platform for technical computing.
二. Ndarray对象
Ndarray (N-dimensional array type) N维数组模型,是可以通过索引访问的包含相同元素集合。ndarray本质是数组,不同之处在于它支持数组里面嵌套数组,这也就是N-dimensional的来源。这个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
- 参数以及介绍
object: Any object exposing the array interface method returns an array, or any (nested) sequence.
dtype: 描述数组元素的类型
copy: 默认值为(True) ,对象被复制
order: C(行),F(列),A(Any)(default)
subok: 默认情况下,强制类型转换为基类数组
ndmin: 返回指定数组的最小维数
import numpy as np
a1 = np.array([1, 2, 3, 4])
a2 = np.array([[1, 2], [3, 4]])
a3 = np.array([1, 2, 3, 4, 5], ndmin=2)
a4 = np.array([1, 2, 3], dtype=complex)
print(a1)
print(a2)
print(a3)
print(a4)
输出结果:

常用ndarray方法:
- reshape(…) 返回一个给定shape的数组的副本
- resize(…) 返回给定shape的数组,原数组shape发生改变
- flatten()/ravel() 返回展平数组,原数组不改变
- astype(dtype) 返回指定元素类型的数组副本
- fill() 将数组元素全部设定为一个标量值
- sum/Prod() 计算所有数组元素的和/积
- mean()/var()/std() 返回数组元素的均值/方差/标准差
- max()/min()/ptp()/median() 返回数组元素的最大值/最小值/取值范围/中位数
- argmax()/argmin() 返回最大值/最小值的索引
- sort() 对数组进行排序,axis指定排序的轴;kind指定排序算法,默认是快速排序
- view()/copy() view创造一个新的数组对象指向同一数据;copy是深复制
- tolist() 将数组完全转为列表,注意与直接使用list(array)的区别
- compress() 返回满足条件的元素构成的数组
三: 数据类型
有五种基本的数据类型
- bool 布尔
- int 整形(int, intc, intp, int8, int16, int32, int64)
- uint 无符号整形(uint8, uint16, uint32, uint64)
- float 浮点型(float, float16, float32, float64)
- complex复数(complex, ocmplex64, complex128)
NumPy数值类型是dtype对象的实例,可由如下方法构造:
numpy.dtype(object, align, copy)
import numpy as np
a1 = np.array([1, 2, 3, 4],dtype=np.int)
a2 = np.array([[1, 2], [3, 4]],dtype=np.float)
a3 = np.array([1, 2, 3, 4, 5], dtype=np.complex)
print(a1)
print(a2)
print(a3)
运行结果:

数据类型转换:
a1 = np.array([1, 2, 3, 4])
a2=np.array(a1,np.float32)
print(a1.dtype)
print(a2.dtype)
运行结果:

Each built-in data type has a character code that uniquely identifies it.
- 'b' − boolean
- 'i' − (signed) integer
- 'u' − unsigned integer
- 'f' − floating-point
- 'c' − complex-floating point
- 'm' − timedelta
- 'M' − datetime
- 'O' − (Python) objects
- 'S', 'a' − (byte-)string
- 'U' − Unicode
- 'V' − raw data (void)
四:数组属性
常用ndarray属性:
- dtype 数组元素的类型
- shape 数组形状
- ndim 数组的维度
- size 数组中元素的个数
- itemsize 数组元素所占字节数
- T 数组的转置
- flat 返回一个数组的迭代器,对flat赋值将导致整个数组的元素被覆盖
- real/imag 复数数组的实部/虚部
- nbytes 数组占用的存储空间
a1 = np.array([[1, 2, 3],[4,5,6]])
print(a1.shape)
a1.shape=(3,2)
print(a1)
b1 = np.arange(24)
print("b1.ndim = ",b1.ndim)
print('b1.reshape(2,4,3) = ',b1.reshape(2,4,3))
运行结果:

五:数组创建例程(Array creation routines)
创建一个新的ndarray对象:
A new ndarray object can be constructed by any of the following array creation routines or using a low-level ndarray constructor.
代码及注释如下所示:
a1=np.empty([2,3])
a2=np.zeros([2,3])
a3=np.ones([2,3],dtype=np.complex)
print(a1)
print(a2)
print(a3)
运行结果:

六:从现有数据创建数组(Array from existing data)
这一部分, 我将介绍如何使用现有的数据来创建数组。
代码及注释如下所示:
a1 = np.asarray([1, 2, 3], dtype=float)
print('a1 = ', a1)
a2 = np.asarray([(5, 2, 0), (8, 9)])
print('a2 = ', a2)
print('a3 = ', range(5))
a4 = np.fromiter(iter(range(5)), dtype=float)
print('a4 = ', a4)
运行结果:

以上就是入门一的全部内容了,不足请多多指教。