Advertisement

python numpy(多维数组&矩阵运算)

阅读量:

菜鸟教程提供了一篇关于NumPy ndarray对象的详细教程。该教程深入探讨了ndarray对象的基本属性及其操作方法。学习者可以通过实践掌握创建ndarray对象的具体步骤,并了解其在数据存储和处理中的应用价值。此外,在实际操作中可结合示例代码来加深对ndarray对象特性的理解与应用能力。

NumPy的核心特性在于其提供的多维数组对象 ndarray(n维数组),这是一个由一系列同一类型的数值数据构成的整体,并基于从零开始的索引来访问其中的具体元素。

复制代码
    numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

维度的数量=秩=轴的数量

每一个线性的数组称为是一个轴(axis);

axis设置为0时,则表示该操作遵循第 0 轴执行,并针对每个列展开处理;而当axis设为1时,则表示该操作遵循第1轴执行,并对每个行进行处理。

ndarray.ndim:秩,即轴的数量或维度的数量

ndarray.shape:数组的维度 ,对于矩阵,n 行 m 列

ndarray.size:数组元素的总个数 ,相当于 .shape 中 n*m 的值

ndarray.dtype:ndarray 对象的元素类型

a = np.arange(24) # 0--23

print (a.ndim) # 维数为1

a = np.array([[1,2,3],[4,5,6]])

print(a.shape) # 输出维度,(2, 3)

a.shape = (3,2) 或 a.reshape(3,2) # 调整数组大小

x = np.empty([3, 2], dtype=int) # 该数组通过给定形状参数和整数型数据类型参数生成,并具有非预设初始值

x = np.zeros(5) # 默认为浮点数;创建指定大小的数组,数组元素以 0 来填充

x = np.ones(5) # 默认为浮点数;创建指定形状的数组,数组元素以 1 来填充

复制代码
    numpy.asarray(a, dtype = None, order = None)

NumPy 从数值范围创建数组

复制代码
    numpy.arange(start, stop, step, dtype)

创建一个一维数组,数组是一个等差数列构成的

复制代码
    np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

创建一个于等比数列

复制代码
    np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

NumPy 切片和索引

import numpy as np
a = np.arange(10)

a[slice(2, 7, 2)] # 方法1
array([2, 4, 6])

a[2:7:2] # 方法2
array([2, 4, 6])

对二维数组进行切片操作

a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]])
a
array([[1, 2, 3],
[2, 3, 4],
[3, 4, 5]])
a[1:]
array([[2, 3, 4],
[3, 4, 5]])

a[..., 1]
array([2, 3, 4])

a[..., 1:]
array([[2, 3],
[3, 4],
[4, 5]])

a[0, ...]
array([1, 2, 3])

NumPy 高级索引

x = np.array([[1, 2], [3, 4], [5, 6]])
x
array([[1, 2],
[3, 4],
[5, 6]])
y = x[[0, 1, 2], [0, 1, 0]] # 获取数组中**(0,0)** ,(1,1) 和**(2,0)** 位置处的元素。
y
array([1, 4, 5])

x[[[0, 0], [2, 2]], [[0, 1], [0, 1]]] # 想要获取数组中四个角的元素, 索引是[0, 0], [2, 2], 索引是[0, 1], [0, 1];所以是获取数组中(0, 0),(0, 1),(2, 0),(2, 1)位置处的元素
array([[1, 2],
[5, 6]])

全部评论 (0)

还没有任何评论哟~