二维数组
1. 定义
由多个一维列表一行一行堆叠形成二维。(这些一维数组必须相同长度的)
#创建一个二维数组。(体会堆叠的过程)
import numpy as np
a = [1, 2, 3] ; b = [4, 5, 6]; c = [7, 8, 9] #三个一维数组
w1 = np.array( [a,b,c] ) # 多个一维数组,一行一行堆叠,形成二维数组
print(w1)
# 结果:
[[1 2 3]
[4 5 6]
[7 8 9]]
2. 二维数组的变形
np.reshape(array,(x,y))
参数 | 含义 |
---|---|
array | 需要变形的数组 |
x | 变形后的行数 |
y | 变形后的列数 |
注意:形状变化是基于数组元素不能改变的,变成的新形状中所包含的元素个数必须符合原来元素个数。如果新数组元素发生变化的时候,就会报错
三维数组及以上
1. 定义
多个二维构成三维,以此类推可得更高维矩阵(一般3维以上就不用numpy.array()这种方法创建了)。
#%% ---------------------------------------------创建三维数组的例子1:(2,3,3)
import numpy as np
a = [1, 2, 3] ; b = [4, 5, 6]; c = [7, 8, 9]
# 多个一维数组,一行一行堆叠形成一个二维数组(3x3)
# 两个二维数组,构成三维数组(2x3x3)
# 最后再用一个 [] 把整体括起来!
w2 = np.array( [ [a,b,c], [a,b,c] ] ) #将两个二维数组堆叠
print(w2)
# 结果:
[[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]]
#%% ---------------------------------------------创建三维数组的例子2:(4,2,3)
import numpy as np
a = [1, 2, 3] ; b = [4, 5, 6]; c = [7, 8, 9]
# 每一页 / 每一个二维数组内容不同:
w3 = np.array( [ [a,b], [a,c], [b,c], [a,a] ] ) #将四个二维数组堆叠
print(w3)
# 结果:
[[[1 2 3]
[4 5 6]]
[[1 2 3]
[7 8 9]]
[[4 5 6]
[7 8 9]]
[[1 2 3]
[1 2 3]]]
由创建三维例子的例子可以看出:np.array(n,x,y)
参数 | 含义 |
---|---|
n | 三维数组由n个二维数组组成 |
x | 二维数组的行数 |
y | 二维数组的列数 |
2. 三维数组的变形
np.reshape(array,(n,x,y))
参数 | 含义 |
---|---|
array | 需要变形的数组 |
n | 变形成多少个二维数组 |
x | 变形后的二维数组的行数 |
y | 变形后的二维数组的列数 |
3. 三维数组的赋值
data_array[1, 2, 2]=1 表示为第2个二维数组;二维数组的第3行第3列;(下标从0开始)
data_array[1, 2, 2]=1
print(data_array)
[[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 1 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]]
4. 识别数组维数的小技巧
最快验证自己创建的数组是否满足自己的维度需求的方式,就是看打印的结果中,最外面有几个 ] 中括号,有几个 ] 就是几维数组!如下图,打印结果最外层有3个 ],说明满足3维的要求。
# 创建一个全是0的三维数组
data_array = np.zeros((3, 5, 6), dtype=np.int) #创建3个二维数组,每个二维数组5维,6列
print(data_array)
#结果
[[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]]
参考文章
https://blog.csdn.net/qq_28618765/article/details/78083895
https://www.jianshu.com/p/6caf8215a5b1
https://blog.csdn.net/qq_34840129/article/details/86294530