科学计算库Numpy-2

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kun1280437633/article/details/80355988

函数

demo:

import numpy as np
b = np.arange(3)
print (b)
print (np.exp(b))

print (np.sqrt(b))

结果

[0 1 2]
[ 1.          2.71828183  7.3890561 ]
[ 0.          1.          1.41421356]


a = np.floor(10*np.random.random((3,4)))           # floor向下取整
print (a)

a = np.floor(10*np.random.random((3,4)))
print (a)
print (('- - - - - -'))
print (a.ravel())   
                                                 # 转换成一维
print (('- - - - - -'))
a.shape = (6,2)
print (a)
print (('- - - - - -'))
print (a.T)     
                                                        # 转置

结果

[[ 8.  9.  3.  6.]
 [ 3.  3.  0.  5.]
 [ 5.  1.  1.  5.]]

- - - - - -
[ 8.  9.  3.  6.  3.  3.  0.  5.  5.  1.  1.  5.]
- - - - - -
[[ 8.  9.]
 [ 3.  6.]
 [ 3.  3.]
 [ 0.  5.]

 [ 5.  1.]
 [ 1.  5.]]
- - - - - -
[[ 8.  3.  3.  0.  5.  1.]

 [ 9.  6.  3.  5.  1.  5.]]

demo:

a = np.floor(10*np.random.random((2,2)))
b = np.floor(10*np.random.random((2,2)))
print (a)
print (('- - - - - -'))
print (b)
print (('- - - - - -'))
print (np.vstack((a,b))) 
                                      # 行拼接
print (('- - - - - -'))
print (np.hstack((a,b)))
                     # 列拼接

结果

[[ 7.  4.]
 [ 5.  0.]]
- - - - - -
[[ 3.  1.]
 [ 8.  0.]]
- - - - - -
[[ 7.  4.]
 [ 5.  0.]
 [ 3.  1.]
 [ 8.  0.]]
- - - - - -
[[ 7.  4.  3.  1.]

 [ 5.  0.  8.  0.]]

demo:

扫描二维码关注公众号,回复: 1040820 查看本文章
a = np.floor(10*np.random.random((2,12)))
print (a)
print (('- - - - - -'))
print (np.hsplit(a,3))                 
                             # 左右平均切成3份
print (('- - - - - -'))
print (np.hsplit(a,(3,4)))                                           # 从左往右在3和4的位置切
print (('- - - - - -'))
a = np.floor(10*np.random.random((12,2)))
print (a)
print (np.vsplit(a,3))                                                # 上下平均切成3份

结果

[[ 7.  8.  7.  3.  3.  1.  1.  4.  6.  1.  8.  3.]
 [ 6.  8.  8.  0.  6.  2.  9.  9.  8.  0.  5.  6.]]
- - - - - -
[array([[ 7.,  8.,  7.,  3.],
       [ 6.,  8.,  8.,  0.]]), array([[ 3.,  1.,  1.,  4.],
       [ 6.,  2.,  9.,  9.]]), array([[ 6.,  1.,  8.,  3.],
       [ 8.,  0.,  5.,  6.]])]
- - - - - -

[array([[ 7.,  8.,  7.],
       [ 6.,  8.,  8.]]), array([[ 3.],
       [ 0.]]), array([[ 3.,  1.,  1.,  4.,  6.,  1.,  8.,  3.],
       [ 6.,  2.,  9.,  9.,  8.,  0.,  5.,  6.]])]
- - - - - -
[[ 5.  1.]
 [ 8.  7.]
 [ 5.  4.]
 [ 1.  3.]
 [ 2.  3.]
 [ 4.  9.]
 [ 4.  9.]

 [ 5.  8.]
 [ 3.  9.]
 [ 2.  3.]
 [ 1.  8.]
 [ 8.  9.]]
[array([[ 5.,  1.],
       [ 8.,  7.],
       [ 5.,  4.],
       [ 1.,  3.]]), array([[ 2.,  3.],
       [ 4.,  9.],

       [ 4.,  9.],
       [ 5.,  8.]]), array([[ 3.,  9.],
       [ 2.,  3.],
       [ 1.,  8.],

       [ 8.,  9.]])]

demo:

a = np.arange(12)
b = a       
                                                        # 可见深浅拷贝
print (a is b)
b.shape = 3,4
print(a.shape)
print (id(a))
print (id(b))


结果

True
(3, 4)
2146616911872
2146616911872

demo:

c = a.view()
print (c is a)
c.shape = 2,6
print (a.shape)
c[0,4] = 1234
print (a)
print (id(a))
print (id(c))


结果

False
(3, 4)
[[   0    1    2    3]
 [1234    5    6    7]
 [   8    9   10   11]]
2146616911872
2146626768448

demo:

d = a.copy()
print (d is a)
d[0,0] = 999
print (d)
print (a)


结果

False
[[ 999    1    2    3]
 [1234    5    6    7]
 [   8    9   10   11]]
[[   0    1    2    3]
 [1234    5    6    7]

 [   8    9   10   11]]

demo:

 data = np.sin(np.arange(20)).reshape(5,4)
 print (data)
 ind = data.argmax(axis=0)
 print (ind)
 data_max = data[ind,range(data.shape[1])]
 print (data_max)

结果

 [[ 0.          0.84147098  0.90929743  0.14112001]
 [-0.7568025  -0.95892427 -0.2794155   0.6569866 ]
 [ 0.98935825  0.41211849 -0.54402111 -0.99999021]
 [-0.53657292  0.42016704  0.99060736  0.65028784]
 [-0.28790332 -0.96139749 -0.75098725  0.14987721]]
[2 0 3 1]
[ 0.98935825  0.84147098  0.99060736  0.6569866 ]

demo:

a = np.arange(0,40,10)
print (a)
b = np.tile(a,(3,5))                               
# tile是复制,参数1是复制谁,参数2是复制成什么样子
print (b)

结果

[ 0 10 20 30]
[[ 0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30]
 [ 0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30]
 [ 0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30]]

 demo:

a = np.array([[4,3,5],[1,2,1]])
print (a)
print (('- - - - - -'))
b = np.sort(a,axis=1)
print (b)
print (('- - - - - -'))
a.sort(axis=1)                                           
  #sort函数从小到大排序
print (a)
print (('- - - - - -'))
a = np.array([4,3,1,2])
j = np.argsort(a)                                           #argsort函数返回的是数组值从小到大的索引值
print (j)
print (('- - - - - -'))

print (a[j])

结果:

[[4 3 5]
 [1 2 1]]
- - - - - -
[[3 4 5]
 [1 1 2]]
- - - - - -
[[3 4 5]
 [1 1 2]]
- - - - - -
[2 3 1 0]
- - - - - -
[1 2 3 4]

猜你喜欢

转载自blog.csdn.net/kun1280437633/article/details/80355988