python细小知识点(不定期更新)

目录:

1.np.range()函数

2.np.transpose()函数

3.np.meshgrid()函数


1.np.range()函数

#一个参数 默认起点0,步长为1 输出:[0 1 2]
a = np.arange(3)

#两个参数 默认步长为1 输出[3 4 5 6 7 8]
a = np.arange(3,9)

#三个参数 起点为0,终点为4,步长为0.1 输出[ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4 1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9]
a = np.arange(0, 3, 0.1)

2.np.transpose()函数

(1)对于一维数组:

>>> import numpy as np
>>> t=np.arange(4)
>>> t
array([0, 1, 2, 3])
>>> t.transpose()
array([0, 1, 2, 3])
>>> 

可见对一维数组没有任何改变

(2)对于二维数组:

>>> arr=np.arange(16).reshape(4,4)
>>> arr
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>> arr.transpose()
array([[ 0,  4,  8, 12],
       [ 1,  5,  9, 13],
       [ 2,  6, 10, 14],
       [ 3,  7, 11, 15]])
>>> arr.transpose(1,0)
array([[ 0,  4,  8, 12],
       [ 1,  5,  9, 13],
       [ 2,  6, 10, 14],
       [ 3,  7, 11, 15]])

此时transepose()han函数相当于转置.T

(3)对于三维数组:

>>> arry=np.arange(24).reshape(2,3,4)
>>> arry
array([[[ 0  1  2  3]
        [ 4  5  6  7]
        [ 8  9 10 11]]

      [[12 13 14 15]
        [16 17 18 19]
        [20 21 22 23]]])
>>> arry.transpose()
array([[[ 0 12]
        [ 4 16]
        [ 8 20]]

       [[ 1 13]
        [ 5 17]
        [ 9 21]]

       [[ 2 14]
        [ 6 18]
        [10 22]]

       [[ 3 15]
        [ 7 19]
        [11 23]]])

可以看出来原来数组的大小为2×3×4,三轴的默认排序为(0,1,2),经过transpose后数组的大小为4×3×2,三轴的顺序变成了(2,1,0),也就是三维数组的情况下,transpose函数默认交换第一维度和第三维度。

此外transpose函数还可以任意变换三轴的顺序,例如

transpose(1,0,2),就是交换第二维度和第一维度。

3.np.meshgrid()函数

In [65]: xnums =np.arange(4)

In [66]: ynums =np.arange(5)


In [67]: xnums

Out[67]: array([0,1, 2, 3])

 

In [68]: ynums

Out[68]: array([0,1, 2, 3, 4])

 

In [69]: x, y= np.meshgrid(xnums,ynums)

In [74]: x

Out[74]:

array([[0, 1, 2,3],

       [0, 1, 2, 3],

       [0, 1, 2, 3],

       [0, 1, 2, 3],

       [0, 1, 2, 3]])



In [75]: y

Out[75]:

array([[0, 0, 0,0],

       [1, 1, 1, 1],

       [2, 2, 2, 2],

       [3, 3, 3, 3],

       [4, 4, 4, 4]]) 


In [72]: x.shape

Out[72]: (5, 4)

In [73]: y.shape

Out[73]: (5, 4)

由上面的交互可以看出,meshgrid的作用是根据传入的两个一维数组参数生成两个数组元素的列表。如果第一个参数是xarray,维度是xdimesion,第二个参数是yarray,维度是ydimesion。那么生成的第一个二维数组是以xarray为行,ydimesion行的向量;而第二个二维数组是以yarray的转置为列,xdimesion列的向量。

猜你喜欢

转载自blog.csdn.net/Mr_health/article/details/84701480