企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 改变数组的维度 ~~~ import numpy as np # 创建0-10包左不包右的数组 tang_array = np.arange(10) print(tang_array) print(tang_array.shape) # 把shape值变为2行5列 tang_array.shape = 2, 5 print(tang_array) ~~~ 输出 ~~~ [0 1 2 3 4 5 6 7 8 9] (10,) [[0 1 2 3 4] [5 6 7 8 9]] ~~~ 修改shape值会影响原来的值 如果不想影响原来的值 ~~~ import numpy as np # 创建0-10包左不包右的数组 tang_array = np.arange(10) # reshape操作后结果要接收,不会影响原来的数组 reshape = tang_array.reshape(5, 2) print(reshape) ~~~ 但是我们要注意,分的时候要注意原来数组的个数 ~~~ import numpy as np tang_array = np.arange(10) reshape = tang_array.reshape(2,3) print(reshape) ~~~ 报错 ~~~ Traceback (most recent call last): File "/Users/jdxia/Desktop/study/py/study.py", line 5, in <module> reshape = tang_array.reshape(2,3) ValueError: cannot reshape array of size 10 into shape (2,3) ~~~ # 新增维度 ~~~ import numpy as np tang_array = np.arange(10) print(tang_array.shape) # :表示原来的东西还是要的,newaxis表示增加一个维度 tang_array = tang_array[np.newaxis, :] print(tang_array) print(tang_array.shape) ~~~ 输出 ~~~ (10,) [[0 1 2 3 4 5 6 7 8 9]] (1, 10) ~~~ 原来是1维的 新增一个维度变为2维的了 # 压缩维度 ~~~ import numpy as np tang_array = np.arange(10) # :表示原来的东西还是要的,newaxis表示增加一个维度 tang_array = tang_array[np.newaxis, :] print(tang_array) # 再新增2个维度 tang_array = tang_array[:, np.newaxis, np.newaxis] print(tang_array) # 压缩元素,把空的轴压缩掉 tang_array = tang_array.squeeze() print(tang_array.shape) ~~~ 输出 ~~~ [[0 1 2 3 4 5 6 7 8 9]] [[[[0 1 2 3 4 5 6 7 8 9]]]] (10,) ~~~ # 行列转换 把原来的行列数转换下 ~~~ import numpy as np tang_array = np.arange(10) # 指定压缩的形状 tang_array.shape = 2, 5 print(tang_array) print('-' * 10) # 也可以写成这样tang_array.T,他不改变原来的值 transpose = tang_array.transpose() print(transpose) ~~~ 输出 ~~~ [[0 1 2 3 4] [5 6 7 8 9]] ---------- [[0 5] [1 6] [2 7] [3 8] [4 9]] ~~~ # 数组的连接 拼接 ~~~ import numpy as np a = np.array([[123, 345, 567], [43, 23, 45]]) b = np.array([[12, 343, 56], [132, 454, 56]]) # 里面的参数要类似元祖的形式 c = np.concatenate((a, b)) print(c) ~~~ 输出 ~~~ [[123 345 567] [ 43 23 45] [ 12 343 56] [132 454 56]] ~~~ 还可以指定维度 ~~~ import numpy as np a = np.array([[123, 345, 567], [43, 23, 45]]) b = np.array([[12, 343, 56], [132, 454, 56]]) # 里面的参数要类似元祖的形式(横着拼接) c = np.concatenate((a, b), axis=1) print(c) ~~~ 输出 ~~~ [[123 345 567 12 343 56] [ 43 23 45 132 454 56]] ~~~ **便捷写法** ~~~ import numpy as np a = np.array([[123, 345, 567], [43, 23, 45]]) b = np.array([[12, 343, 56], [132, 454, 56]]) # 横着拼接 hstack = np.hstack((a, b)) print(hstack) # 竖着拼接 vstack = np.vstack((a, b)) print(vstack) ~~~ # 拉平 ~~~ import numpy as np a = np.array([[123, 345, 567], [43, 23, 45]]) flatten = a.flatten() print(flatten) ~~~ 输出 ~~~ [123 345 567 43 23 45] ~~~