numpy基础四

Posted panfengde

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy基础四相关的知识,希望对你有一定的参考价值。

数组的形状

  1. arange(i) 生成0到i的序列,不包括i
  2. shape 维度/形状
  3. reshape 重新设置形状
  4. newaxis 新的维度
  5. squeeze 去掉空维度
  6. transpose/T 变化形状
  7. concatenate 矩阵链接
  8. vstack 垂直合并
  9. hstack 水平合并
  10. flatten
  11. ravel

arange

array_aange=np.arange(10)

#>>>
[0 1 2 3 4 5 6 7 8 9]

shape

array_shape=np.arange(10)
array_shape.shape

#>>>
(10,)

reshape

array_reshape=np.arange(10)
array_reshape.reshape(1,10) #大小必须不能改变 10个元素,变化后还是10个

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

newaxis

array_newaxis=np.arange(10)
array_newaxis=array_newaxis[np.newaxis,:]
print(array_newaxis)
print(array_newaxis.shape)


# >>>
[[0 1 2 3 4 5 6 7 8 9]]
(1, 10)


array_newaxis=np.arange(10)
array_newaxis=array_newaxis[:,np.newaxis]
print(array_newaxis)
print(array_newaxis.shape)

#>>>
[[0]
 [1]
 [2]
 [3]
 [4]
 [5]
 [6]
 [7]
 [8]
 [9]]
(10, 1)

squeeze

array_newaxis=np.arange(10)
array_newaxis=array_newaxis[:,np.newaxis,np.newaxis]
print(array_newaxis)
print(array_newaxis.shape)
#>>>
[[[0]]
 [[1]]
 [[2]]
 [[3]]
 [[4]]
 [[5]]
 [[6]]
 [[7]]
 [[8]]
 [[9]]]
(10, 1, 1)


array_squeeze=array_newaxis.squeeze()
print(array_squeeze)

#>>>
[0 1 2 3 4 5 6 7 8 9]

transpose 形状转换

array_transpose=np.array([[1,2,3,4,5],[2,3,4,5,6]])
array_transpose.transpose()

#>>>
array([[1, 2],
       [2, 3],
       [3, 4],
       [4, 5],
       [5, 6]])

concatenate数组链接

a=np.array([[1,2,3,4,5],[5,4,3,2,1]])
b=np.array([[0,9,8,7,6],[6,7,8,9,0]])

array_concatenate=np.concatenate((a,b))
print(array_concatenate)
#>>>
[[1 2 3 4 5]
 [5 4 3 2 1]
 [0 9 8 7 6]
 [6 7 8 9 0]]


array_concatnate_axis=np.concatenate((a,b),axis=1)
print(array_concatnate_axis)
#>>>
[[1 2 3 4 5 0 9 8 7 6]
 [5 4 3 2 1 6 7 8 9 0]]
array_concatnate_axis.shape
#>>>
(2, 10)

vstack 垂直合并

a=np.array([[1,2,3,4,5],[5,4,3,2,1]])
b=np.array([[0,9,8,7,6],[6,7,8,9,0]])

np.vstack((a,b))

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

hstack 水平合并

np.hstack((a,b)) 水平合并
#>>>
array([[1, 2, 3, 4, 5, 0, 9, 8, 7, 6],
       [5, 4, 3, 2, 1, 6, 7, 8, 9, 0]])

flatten 合并成一行

array_flatten=np.array([[1,2,3,4],[4,5,6,7]])
array_flatten.flatten()
#>>>
array([1, 2, 3, 4, 4, 5, 6, 7])

revel合并成一行

array_ravel=np.array([[1,2,3,4],[4,5,6,7]])
array_ravel.ravel()
#>>>
array([1, 2, 3, 4, 4, 5, 6, 7])

数组的生成

  1. arange
  2. linspace
  3. logspace
  4. meshgrid
  5. r_
  6. c_
  7. zeros
  8. ones
  9. empty
  10. fill
  11. zeros_like
  12. ones_likes
  13. identity 基准矩阵

range

array_arange=np.arange(10)
print(array_arange)
array_arang_b=np.arange(1,10,2)
print(array_arang_b)
array_arange_c=np.arange(1,10,5,dtype=np.float32)

#>>>
[0 1 2 3 4 5 6 7 8 9]
[1 3 5 7 9]

linspace

array_linspace=np.linspace(1,10) ##默认等差数列个数为 50。
print(array_linspace)
array_linpsace_a=np.linspace(1,10,2)

#>>>
 [1.          1.18367347  1.36734694  1.55102041  1.73469388  1.91836735
  2.10204082  2.28571429  2.46938776  2.65306122  2.83673469  3.02040816
  3.20408163  3.3877551   3.57142857  3.75510204  3.93877551  4.12244898
  4.30612245  4.48979592  4.67346939  4.85714286  5.04081633  5.2244898
  5.40816327  5.59183673  5.7755102   5.95918367  6.14285714  6.32653061
  6.51020408  6.69387755  6.87755102  7.06122449  7.24489796  7.42857143
  7.6122449   7.79591837  7.97959184  8.16326531  8.34693878  8.53061224
  8.71428571  8.89795918  9.08163265  9.26530612  9.44897959  9.63265306
  9.81632653 10.        ]

logspace

np.logspace(0,1,5)  # 10的0次幂到10的1次幂  5个等比列数据
#>>>
array([ 1.        ,  1.77827941,  3.16227766,  5.62341325, 10.        ])

meshgrid

x=np.linspace(-10,10,5)
print(x)
y=np.linspace(-20,20,5)
print(y)
#>>>
[-10.  -5.   0.   5.  10.]
[-20. -10.   0.  10.  20.]

x1,y1=np.meshgrid(x,y)
print(x1)
print(y1)

#>>>
[[-10.  -5.   0.   5.  10.]
 [-10.  -5.   0.   5.  10.]
 [-10.  -5.   0.   5.  10.]
 [-10.  -5.   0.   5.  10.]
 [-10.  -5.   0.   5.  10.]]

[[-20. -20. -20. -20. -20.]
 [-10. -10. -10. -10. -10.]
 [  0.   0.   0.   0.   0.]
 [ 10.  10.  10.  10.  10.]
 [ 20.  20.  20.  20.  20.]]

r_ row 行向量

np.r_[0:10:1]
#>>>
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

c_ col 列向量

np.c_[0:10:1]

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

zeros填充0

np.zeros(5)
array([0., 0., 0., 0., 0.])

np.zeros((5,5))
array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])

ones填充1

np.ones(5)

#>>>
array([1., 1., 1., 1., 1.])

np.ones((5,5))

array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])

empty空地址

np.empty(5)
np.empty((5,5))

fill 自定义填充

a=np.empty((5,5))
a.fill(3)
print(a)
#>>>
[[3. 3. 3. 3. 3.]
 [3. 3. 3. 3. 3.]
 [3. 3. 3. 3. 3.]
 [3. 3. 3. 3. 3.]
 [3. 3. 3. 3. 3.]]

zeros_like ones_like

temp=np.arange(0,10,2)
print(temp)
#>>>
[0 2 4 6 8]

result=np.zeros_like(temp)
print(result)
#>>>
[0 0 0 0 0]

result_ones=np.ones_like(temp)
print(result_ones)
#>>>
[1 1 1 1 1]

identity 对角矩阵

np.identity(5)
#>>>

array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

以上是关于numpy基础四的主要内容,如果未能解决你的问题,请参考以下文章

验证码逆向专栏某验四代文字点选验证码逆向分析

验证码逆向专栏某验四代消消乐验证码逆向分析

科学计算基础软件包NumPy入门讲座:掩码数组

科学计算基础软件包NumPy入门讲座:掩码数组

Python必备基础:这些NumPy的神操作你都掌握了吗?微交易支付通道申请微信支付接口对接支付宝支付通道搭建微盘网银扫码快捷H5支付

python numpy片段