Ndarray 数组
Posted Rannie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ndarray 数组相关的知识,希望对你有一定的参考价值。
NumPy Ndarray 介绍
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray 对象是用于存放同类型元素的多维数组。
ndarray 中的每个元素在内存中都有相同存储大小的区域。
ndarray 内部由以下内容组成:
- 一个指向数据(内存或内存映射文件中的一块数据)的指针。
- 数据类型或 dtype,描述在数组中的固定大小值的格子。
- 一个表示数组形状(shape)的元组,表示各维度大小的元组。
- 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。
NumPy 创建数组
利用 array() 函数创建数组
array1 = [1,2,3]
m = np.array(array1)
print(m)
array2 = [[1,2,3],[4,5,6]]
n = np.array(array2)
print(n)
利用arange()和linspace()函数创建 “等差数列” 数组
np.arange(start,end,step):start和end表示起始位置,step表示步长,用于创建表示等差数列的一维数组,注意得到的结果数组不包含终值
np.linspace(start,end,num):start和end表示起始位置,num表示个数,用于创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值
array1 = np.arange(1, 15)
array2 = np.arange(1, 15, 3)
# [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
# [ 1 4 7 10 13]
endpoint=True表示是包含终止值(默认),endpoint=False表示不包含终止值
type=np.float64指定创建的数组的数据类型默认是float64,你也可以设置为dtype=np.np.int32
arr1 = np.linspace(1, 20, num=5, endpoint=False, dtype=np.float64)
arr2 = np.linspace(1, 20, num=5, endpoint=False, dtype=np.int32)
arr3 = np.linspace(1, 20, num=5, endpoint=True, dtype=np.float64)
arr4 = np.linspace(1, 20, num=5, endpoint=True, dtype=np.int32)
# [ 1. 4.8 8.6 12.4 16.2]
# [ 1 4 8 12 16]
# [ 1. 5.75 10.5 15.25 20. ]
# [ 1 5 10 15 20]
创建 “指定数值填充” 的数组
np.zeros((3, 5)))
np.ones((3, 5))
np.full((3, 5), 8)
numpy.zeros(shape, dtype = float, order = \'C\')
shape 形状
dtype 数据类型,可选(float, int) 默认为float
order \'C\' 用于 C 的行数组,或者 \'F\' 用于 FORTRAN 的列数组
复制已有数组,创建指定数值的数组
如果我们知道一个数组的形状,想要创建一个和它形状相同的数组
- np.zeros_like():复制已有数组形状,创建一个全0数组;
- np.ones_like():复制已有数组形状,创建一个全1数组;
- np.full_like():复制已有数组形状,创建一个指定数值的数组;
单位矩阵和对角矩阵
创建单位矩阵,有 np.eye(x) 和 np.identity(x) 这两个函数
np.eye(3)
np.identity(3)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
创建对角矩阵,利用 np.diag() 函数
np.diag([1, 2, 3, 4, 7])
[[1 0 0 0 0]
[0 2 0 0 0]
[0 0 3 0 0]
[0 0 0 4 0]
[0 0 0 0 7]]
logspace()函数创建 “等比数列” 数组
arange() 和 linspace() 函数,创建等差数列
利用 logspace() 函数,创建等比数列
np.logspace(start, stop, num=50, endpoint=True, base=, dtype=None)
start和stop表示指数次幂,base表示底数,也就是公比;
endpoint=True表示是包含终止值(默认),endpoint=False表示不包含终止值
np.logspace(1, 10, 5, endpoint=False, base=4, dtype=int)
# [ 4 48 588 7131 86475]
NumPy Ndarray 数组属性
以上是关于Ndarray 数组的主要内容,如果未能解决你的问题,请参考以下文章