以前写过一篇:
python将两个二维array叠加成三维array的实现方法
,
这篇文章尝试用“曲线救国”的方法来解决二维数组叠加成三维数组的问题。
但天道有轮回,苍天绕过谁。好不容易把数组叠加在一块儿了,新的需求又出现了:将三维数组展开成二维数组。有借有还,再借不难。今天就来解决把三维数组展开成二维数组的问题。
相对于叠加三维数组,numpy对展开数组支持得很好,只需要用好
np.reshape(A,(a,b))
函数即可。
用到的参数:
-
A:需要被重新组合的数组
-
(a,b): 各个维度的长度。比如要想展开成二维数组,那么(a,b)就是展开成a行b列。
当然,如果某一个维度长度不确定,也可以用-1代替。
看下面这个例子:
A = np.reshape(np.arange(24),(4,3,2))
print(A)
print('A的维度:',A.shape)
B = np.reshape(A,(-1,2))
print(B)
print('B的维度:',B.shape)
[[[ 0 1]
[ 2 3]
[ 4 5]]
[[ 6 7]
[ 8 9]
[10 11]]
[[12 13]
[14 15]
[16 17]]
[[18 19]
[20 21]
[22 23]]]
A的维度:(4,3,2)
[[ 0, 1],
[ 2, 3],
[ 4, 5],
[ 6, 7],
[ 8, 9],
[10, 11],
[12, 13],
[14, 15],
[16, 17],
[18, 19],
[20, 21],
[22, 23]]
B的维度:(12, 2)
可以看到,原来的(4,3,2)维的数组被展开成了(12,2)维的数组,而且最后一维的相对位置不变。
以前写过一篇:python将两个二维array叠加成三维array的实现方法,尝试用“曲线救国”的方法来解决二维数组叠加成三维数组的问题。但是,天道有轮回,苍天绕过谁。好不容易把数组叠加在一块儿了,新的需求又出现了:将三维数组展开成二维数组。有去有回。相对于叠加三维数组,展开数组numpy支持得很好,只需要用好np.reshape(A,(a,b)) 函数即可。参数:A:被重新组合的数组...
sum = 0
matrix = [[0, 1, 0], [0, 21, 0], [0, 12, 0]]
matrix2 = [[0 for i in range(3)] for i in range(3)]
matrix2[0][0] = 123
matrix2[1][1] = 123
matrix2[2][2] = 123
for i in ran
reshape(shape) : 不改变
数组元素,返回一个shape形状的
数组,原
数组不变。是对每行元素进行处理
resize(shape) : 与.reshape()功能一致,但修改原
数组
In [1]: a = np.arange(20)
#原
数组不变
In [2]: a.reshape([4,5])
Out[2]:
array([[ 0, 1, 2, 3, 4],
今天做数据处理时,遇到了从三维数组中批量加入二维数组的需求。其中三维数组在深度学习的特征数据处理时经常会使用到,所以读者有必要对该小知识点做到清楚了解并掌握。现对三维数组中的元素位置结合代码做详细归纳总结,方便日后查阅和为网友答疑!
图示效果图:
直接贴代码:
def test3D():
import numpy as np
data_array = np.zeros((3, 5, 6), dtype=np.int)
data_array[1, 2, 2] = 1
print(data_array)
介绍:通过np.zeros创建一个3行5列6个通道的三维数组,并给第二个通道的第一
我们生
成了一个维度为2的
二维数组,其中有两个索引值:矩阵的行和列
transpose()函数的作用就是调换
数组的行列值的索引值,类似于求矩阵的转置
arr.transpose()
我们可以直观的看到,
数组的行列索引值对换,1的位置从arr(0,1)跑到了arr(1,0)
三维数组
我们继续生
成一个
三维数组
x = np.arange(12).re
FaceNet源码解读:史上最全的FaceNet源码使用方法和讲解(一)(附预训练模型下载)
willSleep:
机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南
Ly_sixer:
FaceNet源码解读:史上最全的FaceNet源码使用方法和讲解(一)(附预训练模型下载)
__Ustinian__: