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 数组的主要内容,如果未能解决你的问题,请参考以下文章

'numpy.ndarray':对象不可调用错误

Python之numpy详细教程

python 如何对ndarray 每个变量求平方根?

numpy的ndarray数组如何reshape成固定大小

Python中ndarray数组切片问题a[-n -x:-y]

Numpy —— 随机数np.random