np.concatenate((im_mask_gt, im_mask_pre), axis = 0)
np.concatenate([points_world, np.ones((points_world.shape[0], 1))], axis=-1)
>>> a=[[1],[2],[3]]
>>> b=[[1],[2],[3]]
>>> c=[[1],[2],[3]]
>>> d=[[1],[2],[3]]
>>> np.vstack((a,b,c,d))
[[1]
[2]
[3]
[1]
[2]
[3]
[1]
[2]
[3]
[1]
[2]
[3]]
>>> a=[[1],[2],[3]]
>>> b=[[1],[2],[3]]
>>> c=[[1],[2],[3]]
>>> d=[[1],[2],[3]]
>>> np.hstack((a,b,c,d))
[[1 1 1 1]
[2 2 2 2]
[3 3 3 3]]
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print np.dstack((a, b))
[[[1 5]
[2 6]]
[[3 7]
[4 8]]]
连接一个列表中的多个列表
>>> a=[[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
>>> c=np.stack(a,axis=0)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
>>> c=np.stack(a,axis=1)
[[ 1 5 9]
[ 2 6 10]
[ 3 7 11]
[ 4 8 12]]
连接多个列表
>>> a=[1,2,3,4]
>>> b=[5,6,7,8]
>>> c=[9,10,11,12]
>>> np.stack((a,b,c),axis=0)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
>>> np.stack((a,b,c),axis=1)
[[ 1 5 9]
[ 2 6 10]
[ 3 7 11]
[ 4 8 12]]
#沿着第一维连接4个向量,得到的numpy维度为(n,3)
a=np.array([0,3,4,2,6,4])
a.shape #(6,)
b = a[:,np.newaxis]
#b=array([[0],
[3],
[4],
[2],
[6],
[4]])
#b.shape = (6, 1)
import numpy as np
a=[1,2,3]
b=[4,5]
c=[[6,7],[8,9]]
d=[[10,11],[12,13]]
print('在一维数组a后添加values,结果如下:{}'.format(np.append(a,b,axis=0)))
print('沿二维数组c的行方向添加values结果如下:'.format(np.append(c,d,axis=0)))
print('沿二维数组c的列方向添加values结果如下:'.format(np.append(c,d,axis=1)))
在一维数组a后添加values,结果如下:
[1 2 3 4 5]
沿二维数组c的行方向添加values结果如下:
[[ 6 7]
[ 8 9]
[10 11]
[12 13]]
沿二维数组c的列方向添加values结果如下:
[[ 6 7 10 11]
[ 8 9 12 13]]
>>> b = np.array([[1, 2], [3, 4]])
>>> np.tile(b, 2) #沿X轴复制2倍
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
>>> np.tile(b, (2, 1))#沿X轴复制1倍(相当于没有复制),再沿Y轴复制2倍
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
对矩阵array进行复制,在维度axis上复制repeats次
np.repeat(array,repeats,axis=1)
ones_like返回一个用1填充的跟输入数组 形状和类型一样的数组
zeros_like返回一个用0填充的跟输入数组 形状和类型一样的数组
>>> x = np.arange(6)
>>> x = x.reshape((2, 3))
>>> x
array([[0, 1, 2],
[3, 4, 5]])
>>> np.ones_like(x)
array([[1, 1, 1],
[1, 1, 1]])
>>>
>>> y = np.arange(3, dtype=np.float)
>>> y
array([ 0., 1., 2.])
>>> np.ones_like(y)
array([ 1., 1., 1.])
A = np.mat("0 1 2;1 0 3;4 -3 8")
print (A)
#[[ 0 1 2]
# [ 1 0 3]
# [ 4 -3 8]]
inv = np.linalg.inv(A)
print (inv)
#[[-4.5 7. -1.5]
# [-2. 4. -1. ]
# [ 1.5 -2. 0.5]]
a=np.array([0,3,4,2,6,4]);
b = a.reshape((2, 3))
print(np.linalg.norm(b,axis=1,keepdims=True))
#[[5. ]
[7.48331477]]
bb=np.array([3,4])
np.linalg.norm(bb)
#5.0
x = np.array([0, 1, 2])
y = np.array([0, 1])
X, Y = np.meshgrid(x, y) #生成2行3列的矩阵坐标
print(X)
print(Y)
[[0 1 2]
[0 1 2]]
[[0 0 0]
[1 1 1]]
np.swapaxes(data,axis1,axis2) # (交换axis1和axis2)
#Consider a (6,7,8) shape array, what is the index (x,y,z) of the 101th element ?(所有下标从0开始)
>>> print np.unravel_index(100,(6,7,8))
(1, 5, 4)
该函数的作用是将数组a中的所有数限定到范围a_min和a_max中。
部分参数解释:
a:输入矩阵;
a_min:被限定的最小值,所有比a_min小的数都会强制变为a_min;
a_max:被限定的最大值,所有比a_max大的数都会强制变为a_max;
out:可以指定输出矩阵的对象,shape与a相同
np.clip(a, a_min, a_max, out=None)
np.intersect1d([1, 3, 4, 3], [3, 1, 2, 1])
array([1, 3])
from functools import reduce
>>> reduce(np.intersect1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2]))
array([3])