二、Python中的Numpy多维数组

1.创建多维数组:

常用的方法是array。

import numpy as np
np.array([1,2,3])
np.array([[1,2,3],[4,5,6]])

备注:

(1)使用 NumPy 中的 ones 可以创建维度指定且元素全为1的数组;

(2)使用 NumPy 中的 zeros 可以创建维度指定且元素全为0的数组;

(3)使用 NumPy 中的 empty 可以创建维度指定且元素全为随机数的数组。

2.多维数组的常用属性:

(1) ndim:返回统计的数组维数,即维度的数量。
(2) shape:返回数组的维度值,对返回的结果使用数据类型为整型的元组来表示,比如维数组返回的结果为(n,m),那么 表示数组中对应维度数据的长度。
(3) size:返回要统计数组中的元素的总数量。
(4) dtype:返回数组中元素的数据类型。
(5) itemsize:返回数组中每个元素的字节大小。例如元素的dtype是float64,则为8=64/8;元素的dtype是complex32,则为4=32/8,其他类似。

import numpy as np
 
a = np.empty([3,3])
 
a.dim  #2
 
a.shape  #(3,3)
 
a.size  #9
 
a.dtype   #dtype('float64')
 
a.itemsize    #8

3.数组的打印:

在数组中的元素太多时,若全部进行打印输出,则会占用大面积的显示空间,而且不易查看,所以在打印输出元素过多的数组时,输出显示的内容会自动跳过中间的部分,只打印首尾的一小部分,对中间的部分用省略号(...)来代替。

b = np.arange(2000)
print(b)  #[   0    1    2 ... 1997 1998 1999]

4.多维数组的基本操作:

这些操作包括数组的算术运算、索引、切片、迭代等。

(1)数组的算术运算

加法、减法、乘法和除法,分别为+、-、*和/。

(2)数组自身的运算

1) min:默认找出数组的所有元素中值最小的元素,可以通过设置axis值来按行(axis=1)或者列(axis=0)查找元素中的最小值。
2) max:默认找出数组的所有元素中值最大的元素,可以通过设置 axis的值来按行或者列查找元素中的最大值。
3) sum:默认对数组中的所有元素进行求和运算,并返回运算结果,同样可以通过axis的值来按行或者列对元素进行求和运算。
4) exp:对数组中的所有元素进行指数运算。
5) sqrt:对数组中的所有元素进行平方根运算。
6) square:对数组中的所有元素进行平方运算。
 

(3)随机数组

生成随机数在我们平时的应用中是很有用的,有很多方法:

1) seed:随机因子,在随机数生成器的随机因子被确定后,无论我们运行多少次随机程序,最后生成的数字都是一样的,随机因子更像把随机的过程变成一种伪随机的机制,不过这有利于结果的复现。
2) rand:生成一个在[0, 1)范围内满足均匀分布的随机样本数。
3) randn:生成一个满足平均值为0且方差为1的正太分布随机样本数。
4) randint:在给定的范围内生成类型为整数的随机样本数。
5) binomial:生成一个维度指定且满足二项分布的随机样本数。
6) beta:生成一个指定维度且满足 beta 分布的随机样本数。
7) normal:生成一个指定维度且满足高斯正太分布的随机样本数。

示例1:

np.random.seed(42)
 
print(np.random.rand(2,3))
print(np.random.randn(2,3))
print(np.random.randint(1,10))
print(np.random.binomial(6,1))
print(np.random.beta(2,3))
print(np.random.normal(2,3))

示例1输出结果;

[[0.37454012 0.95071431 0.73199394]
 [0.59865848 0.15601864 0.15599452]]
[[ 1.57921282  0.76743473 -0.46947439]
 [ 0.54256004 -0.46341769 -0.46572975]]
6
6
0.45543839870822056
2.666236704694229