一、数组操作
1. 查看数据形状
``python >>> a1 = np.array([1,2,3,4,5]) >>> a1 array([1, 2, 3, 4, 5]) >>> a1.shape (5,) # 括号内1个值表示一维数组
>>> a2 = np.array([[1,2,3,4],[5,6,7,8]]) >>> a2 array([[1, 2, 3, 4], [5, 6, 7, 8]]) >>> a2.shape (2, 4) # 括号2个值表示二维数组
>>> a3 = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]) >>> a3 array([[[ 1, 2, 3], [ 4, 5, 6]], [[ 7, 8, 9], [10, 11, 12]]]) >>> a3.shape (2, 2, 3) # 括号3个值表示三维数组
2. 修改数组形状
语句: reshape(shape, order='C' )
作用:不改变数据的条件下修改形状
参数说明:
- shape:形状
- order:C-按行,‘F’-- 按列,‘A’–原顺序,‘k’ -元素在内存中的出现顺序
>>>a = np.array([[1,2,3,4],[5,6,7,8]]) >>> a.reshape(4,2) array([[1, 2], [3, 4], [5, 6], [7, 8]]) # 再次查看数组形状发现只是临时修改 >>> a.shape (2, 4) # 可以用一个变量来接收返回值 >>> b = a.reshape(4,2) >>> b array([[1, 2], [3, 4], [5, 6], [7, 8]])
语句: flatten( order='C')
作用:展平的数组元素并拷贝一份,顺序通常是"C风格"
注意:修改返回的数组不会对原数组产生影响
参数说明:
- order:‘C’-按行,‘F’–按列,‘A’–原顺序,‘k’ -元素在内存中的出现顺序
>>> c = np.array([[1, 2],[3, 4],[5, 6],[7, 8]]) >>> c array([[1, 2], [3, 4], [5, 6], [7, 8]]) >>> c.shape (4, 2) # 方法1 >>> c.reshape(c.shape[0]*c.shape[1],) array([1, 2, 3, 4, 5, 6, 7, 8]) # 方法2 >>> c.flatten() array([1, 2, 3, 4, 5, 6, 7, 8])
3. 数组和数的计算
numpy的广播机制造成的,在运算过程中,加减乘除的值被广播到所有的元素上面.
>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]]) >>> a array([[ 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10]]) >>> a + 1 array([[ 2, 3, 4, 5, 6], [ 7, 8, 9, 10, 11]]) >>> a - 1 array([[0, 1, 2, 3, 4]