运算库之numpy(数组的切片操作和数组shape的转换)

1.数组的切片操作,主要是用来抓取数组中的一些数据,或者对其进行修改
    1. 一维数组
        和python_list的操作方式相同
    2. 二维数组
        查看下方是实例
    3. 多维数组(这里我们使用三维数组进行操作显示)
        查看下方是实例
        通过以上我们可以总结出来,虽然当维数较多的时候,看起来挺吓人,但是在每一个维度上,都可以通过该维度的切片一一处理出来

2.数组的shape转换
    1. array.shape(shape=)
        shape:就是想转换成的shape,这里需要注意的是,这是按照顺序转化的
        return:输出一个转化为shape的array。不会对原来的array进行转化
    2. array.size(shape=)
        shape:就是想转换成的shape,这里需要注意的是,这是按照顺序转化的
        return:没有输出,直接对array进行转化
    3. array.T
        这里直接是对array进行了转置,即行变成列,列变成行。
        注意:只能对二维数组进行处理,因此又叫做矩阵的转置。
        return:返回一个转置后的数组,并不会对原始数组进行改变

二维数组的切片操作

代码:

import numpy as np

# 数据获取
np.random.seed(50)
data = np.random.normal(loc=0, scale=2, size=8*10).reshape((8, 10))
print('data\n', data)

# 这里我们取出第5行的前3列
print(data[4, :3])

# 这里我们修改取出的数据为100(这里就利用了numpy的广播效应)
data[4, :3] = 100
print('修改后的data\n',data)

输出:

data
 [[-3.12070422 -0.06195521 -1.24185685 -2.92916097  2.82389224 -0.95346429
  -1.56093843  2.14053547 -2.56458519 -2.6549578 ]
 [ 0.25267528  1.72438743  1.39347393 -0.66913037 -1.99505213  3.19781659
   6.62815069  1.97554092  0.24773251  1.48557079]
 [-0.7879117   0.29623164 -0.82446891 -0.32143012  0.27906295  0.57093874
  -0.56252399  3.42181463 -0.29953328  1.38061344]
 [ 2.19041902  2.67681741 -2.73796334  0.97285526  1.50704336  0.72692919
  -0.62942096  2.74656234 -1.24883433  0.75150799]
 [-0.40083263  1.48607612  1.71472391 -3.01237857 -3.33270434 -0.43798961
  -0.71771686  0.75705539  1.36843073 -2.33571213]
 [-1.58643324 -0.07767079  5.41050999 -2.98277701  0.19195586  1.04937342
   1.631331    0.10301161 -0.32911072  0.55639883]
 [ 0.1742294   0.06853674  1.49313783 -1.88727517 -0.49155333  2.21624192
   0.07801578 -0.42653337 -1.78190923 -0.54129268]
 [ 0.44448744  0.50362719  1.41585217  0.98797966  2.94200334 -1.16523894
   4.13163899  2.17566777  1.61037808 -3.17576968]]
[-0.40083263  1.48607612  1.71472391]
[[-3.12070422e+00 -6.19552069e-02 -1.24185685e+00 -2.92916097e+00
   2.82389224e+00 -9.53464287e-01 -1.56093843e+00  2.14053547e+00
  -2.56458519e+00 -2.65495780e+00]
 [ 2.52675279e-01  1.72438743e+00  1.39347393e+00 -6.69130370e-01
  -1.99505213e+00  3.19781659e+00  6.62815069e+00  1.97554092e+00
   2.47732515e-01  1.48557079e+00]
 [-7.87911701e-01  2.96231636e-01 -8.24468906e-01 -3.21430122e-01
   2.79062950e-01  5.70938737e-01 -5.62523985e-01  3.42181463e+00
  -2.99533278e-01  1.38061344e+00]
 [ 2.19041902e+00  2.67681741e+00 -2.73796334e+00  9.72855255e-01
   1.50704336e+00  7.26929187e-01 -6.29420962e-01  2.74656234e+00
  -1.24883433e+00  7.51507995e-01]
 [ 1.00000000e+02  1.00000000e+02  1.00000000e+02 -3.01237857e+00
  -3.33270434e+00 -4.37989605e-01 -7.17716858e-01  7.57055387e-01
   1.36843073e+00 -2.33571213e+00]
 [-1.58643324e+00 -7.76707925e-02  5.41050999e+00 -2.98277701e+00
   1.91955864e-01  1.04937342e+00  1.63133100e+00  1.03011608e-01
  -3.29110719e-01  5.56398833e-01]
 [ 1.74229404e-01  6.85367384e-02  1.49313783e+00 -1.88727517e+00
  -4.91553333e-01  2.21624192e+00  7.80157810e-02 -4.26533373e-01
  -1.78190923e+00 -5.41292676e-01]
 [ 4.44487437e-01  5.03627194e-01  1.41585217e+00  9.87979663e-01
   2.94200334e+00 -1.16523894e+00  4.13163899e+00  2.17566777e+00
   1.61037808e+00 -3.17576968e+00]]

三维数组的切片操作

代码:

import numpy as np

# 数据获取
np.random.seed(50)
data = np.random.normal(loc=0, scale=2, size=9*10).reshape((3, 3, 10))
print('data\n', data)

# 这里我们取出一维的第2行的前五列
print(data[0, 1, :5])

# 这里我们修改取出的数据为100(这里就利用了numpy的广播效应)
data[0, 1, :5] = 100
print('修改后的data\n',data)

 输出:

data
 [[[-3.12070422 -0.06195521 -1.24185685 -2.92916097  2.82389224
   -0.95346429 -1.56093843  2.14053547 -2.56458519 -2.6549578 ]
  [ 0.25267528  1.72438743  1.39347393 -0.66913037 -1.99505213
    3.19781659  6.62815069  1.97554092  0.24773251  1.48557079]
  [-0.7879117   0.29623164 -0.82446891 -0.32143012  0.27906295
    0.57093874 -0.56252399  3.42181463 -0.29953328  1.38061344]]

 [[ 2.19041902  2.67681741 -2.73796334  0.97285526  1.50704336
    0.72692919 -0.62942096  2.74656234 -1.24883433  0.75150799]
  [-0.40083263  1.48607612  1.71472391 -3.01237857 -3.33270434
   -0.43798961 -0.71771686  0.75705539  1.36843073 -2.33571213]
  [-1.58643324 -0.07767079  5.41050999 -2.98277701  0.19195586
    1.04937342  1.631331    0.10301161 -0.32911072  0.55639883]]

 [[ 0.1742294   0.06853674  1.49313783 -1.88727517 -0.49155333
    2.21624192  0.07801578 -0.42653337 -1.78190923 -0.54129268]
  [ 0.44448744  0.50362719  1.41585217  0.98797966  2.94200334
   -1.16523894  4.13163899  2.17566777  1.61037808 -3.17576968]
  [ 2.461771   -4.74690676 -0.06222194 -7.61978076 -0.39809938
    0.70086148 -0.10510157 -1.26856217 -0.72586221 -5.14183952]]]
[ 0.25267528  1.72438743  1.39347393 -0.66913037 -1.99505213]
修改后的data
 [[[-3.12070422e+00 -6.19552069e-02 -1.24185685e+00 -2.92916097e+00
    2.82389224e+00 -9.53464287e-01 -1.56093843e+00  2.14053547e+00
   -2.56458519e+00 -2.65495780e+00]
  [ 1.00000000e+02  1.00000000e+02  1.00000000e+02  1.00000000e+02
    1.00000000e+02  3.19781659e+00  6.62815069e+00  1.97554092e+00
    2.47732515e-01  1.48557079e+00]
  [-7.87911701e-01  2.96231636e-01 -8.24468906e-01 -3.21430122e-01
    2.79062950e-01  5.70938737e-01 -5.62523985e-01  3.42181463e+00
   -2.99533278e-01  1.38061344e+00]]

 [[ 2.19041902e+00  2.67681741e+00 -2.73796334e+00  9.72855255e-01
    1.50704336e+00  7.26929187e-01 -6.29420962e-01  2.74656234e+00
   -1.24883433e+00  7.51507995e-01]
  [-4.00832630e-01  1.48607612e+00  1.71472391e+00 -3.01237857e+00
   -3.33270434e+00 -4.37989605e-01 -7.17716858e-01  7.57055387e-01
    1.36843073e+00 -2.33571213e+00]
  [-1.58643324e+00 -7.76707925e-02  5.41050999e+00 -2.98277701e+00
    1.91955864e-01  1.04937342e+00  1.63133100e+00  1.03011608e-01
   -3.29110719e-01  5.56398833e-01]]

 [[ 1.74229404e-01  6.85367384e-02  1.49313783e+00 -1.88727517e+00
   -4.91553333e-01  2.21624192e+00  7.80157810e-02 -4.26533373e-01
   -1.78190923e+00 -5.41292676e-01]
  [ 4.44487437e-01  5.03627194e-01  1.41585217e+00  9.87979663e-01
    2.94200334e+00 -1.16523894e+00  4.13163899e+00  2.17566777e+00
    1.61037808e+00 -3.17576968e+00]
  [ 2.46177100e+00 -4.74690676e+00 -6.22219402e-02 -7.61978076e+00
   -3.98099383e-01  7.00861484e-01 -1.05101570e-01 -1.26856217e+00
   -7.25862211e-01 -5.14183952e+00]]]

 数组的shape转换

代码:

import numpy as np

np.random.seed(22)
data = np.random.normal(loc=0, scale=2, size=90).reshape(9, 10)
print('data:\n', data)

# reshape转换
data.reshape((10, 9))
print('data:\n', data)

# resize转换
data.resize((10, 9))
print('data:\n', data)

# T转置
data.resize((10, 9))
data = data.T
print('data:\n', data)

 输出:

data:
 [[-0.18389984 -2.92670131  2.16358336 -0.47865034 -0.98225827 -2.00454402
   1.83764301 -2.2072642   1.25298691 -1.12302756]
 [ 0.05771024 -0.46153438  1.17550443  1.50463516 -2.11700511  2.11194483
   1.49550053  2.12935318  3.04025918 -2.97720587]
 [ 3.71997978 -3.19722605 -1.29214723  0.67465     2.09345745  1.25828668
   0.72611819  1.11149939 -2.17709906  0.04738954]
 [ 4.99835328 -4.98006079 -0.46972477 -0.19512692 -1.77305868 -0.27342648
   0.20395785 -0.50185907 -0.15762461 -2.17032833]
 [ 1.1898569  -1.27781614 -2.21567372  4.21229151 -1.13477554 -0.95989959
  -3.84645971  0.79917708 -2.09636774 -1.38775741]
 [ 1.49067829  1.07381999 -1.46544355  1.11143126  0.8645786  -0.27160796
  -1.88221218  0.96953473 -3.06564291  0.80995778]
 [ 0.02565225 -2.46343112 -2.10617005  5.03244365 -4.07805701  0.18897462
  -0.62964667  0.98062943  0.70995238  1.90142269]
 [ 1.5207436   0.02300725 -2.75211392 -0.54310937  1.0845041   1.07104442
   2.31999608 -0.3300101  -2.35880513 -1.0905979 ]
 [ 0.54100534  1.96047512  2.0137768   1.56431251 -2.49718332 -0.84766689
   1.10521631  0.65920685  1.72623658 -2.45475605]]
data:
 [[-0.18389984 -2.92670131  2.16358336 -0.47865034 -0.98225827 -2.00454402
   1.83764301 -2.2072642   1.25298691 -1.12302756]
 [ 0.05771024 -0.46153438  1.17550443  1.50463516 -2.11700511  2.11194483
   1.49550053  2.12935318  3.04025918 -2.97720587]
 [ 3.71997978 -3.19722605 -1.29214723  0.67465     2.09345745  1.25828668
   0.72611819  1.11149939 -2.17709906  0.04738954]
 [ 4.99835328 -4.98006079 -0.46972477 -0.19512692 -1.77305868 -0.27342648
   0.20395785 -0.50185907 -0.15762461 -2.17032833]
 [ 1.1898569  -1.27781614 -2.21567372  4.21229151 -1.13477554 -0.95989959
  -3.84645971  0.79917708 -2.09636774 -1.38775741]
 [ 1.49067829  1.07381999 -1.46544355  1.11143126  0.8645786  -0.27160796
  -1.88221218  0.96953473 -3.06564291  0.80995778]
 [ 0.02565225 -2.46343112 -2.10617005  5.03244365 -4.07805701  0.18897462
  -0.62964667  0.98062943  0.70995238  1.90142269]
 [ 1.5207436   0.02300725 -2.75211392 -0.54310937  1.0845041   1.07104442
   2.31999608 -0.3300101  -2.35880513 -1.0905979 ]
 [ 0.54100534  1.96047512  2.0137768   1.56431251 -2.49718332 -0.84766689
   1.10521631  0.65920685  1.72623658 -2.45475605]]
data:
 [[-0.18389984 -2.92670131  2.16358336 -0.47865034 -0.98225827 -2.00454402
   1.83764301 -2.2072642   1.25298691]
 [-1.12302756  0.05771024 -0.46153438  1.17550443  1.50463516 -2.11700511
   2.11194483  1.49550053  2.12935318]
 [ 3.04025918 -2.97720587  3.71997978 -3.19722605 -1.29214723  0.67465
   2.09345745  1.25828668  0.72611819]
 [ 1.11149939 -2.17709906  0.04738954  4.99835328 -4.98006079 -0.46972477
  -0.19512692 -1.77305868 -0.27342648]
 [ 0.20395785 -0.50185907 -0.15762461 -2.17032833  1.1898569  -1.27781614
  -2.21567372  4.21229151 -1.13477554]
 [-0.95989959 -3.84645971  0.79917708 -2.09636774 -1.38775741  1.49067829
   1.07381999 -1.46544355  1.11143126]
 [ 0.8645786  -0.27160796 -1.88221218  0.96953473 -3.06564291  0.80995778
   0.02565225 -2.46343112 -2.10617005]
 [ 5.03244365 -4.07805701  0.18897462 -0.62964667  0.98062943  0.70995238
   1.90142269  1.5207436   0.02300725]
 [-2.75211392 -0.54310937  1.0845041   1.07104442  2.31999608 -0.3300101
  -2.35880513 -1.0905979   0.54100534]
 [ 1.96047512  2.0137768   1.56431251 -2.49718332 -0.84766689  1.10521631
   0.65920685  1.72623658 -2.45475605]]
data:
 [[-0.18389984 -1.12302756  3.04025918  1.11149939  0.20395785 -0.95989959
   0.8645786   5.03244365 -2.75211392  1.96047512]
 [-2.92670131  0.05771024 -2.97720587 -2.17709906 -0.50185907 -3.84645971
  -0.27160796 -4.07805701 -0.54310937  2.0137768 ]
 [ 2.16358336 -0.46153438  3.71997978  0.04738954 -0.15762461  0.79917708
  -1.88221218  0.18897462  1.0845041   1.56431251]
 [-0.47865034  1.17550443 -3.19722605  4.99835328 -2.17032833 -2.09636774
   0.96953473 -0.62964667  1.07104442 -2.49718332]
 [-0.98225827  1.50463516 -1.29214723 -4.98006079  1.1898569  -1.38775741
  -3.06564291  0.98062943  2.31999608 -0.84766689]
 [-2.00454402 -2.11700511  0.67465    -0.46972477 -1.27781614  1.49067829
   0.80995778  0.70995238 -0.3300101   1.10521631]
 [ 1.83764301  2.11194483  2.09345745 -0.19512692 -2.21567372  1.07381999
   0.02565225  1.90142269 -2.35880513  0.65920685]
 [-2.2072642   1.49550053  1.25828668 -1.77305868  4.21229151 -1.46544355
  -2.46343112  1.5207436  -1.0905979   1.72623658]
 [ 1.25298691  2.12935318  0.72611819 -0.27342648 -1.13477554  1.11143126
  -2.10617005  0.02300725  0.54100534 -2.45475605]]

学习地址:

黑马程序员Python教程,4天快速入门Python数据挖掘,系统精讲+实战案例_哔哩哔哩_bilibili

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值