NumPy部分数组运算方法

>>> np.random.randint(0, 50, 5)      # 随机数组,5个0到50之间的数字
array([13, 47, 31, 26,  9])
>>> np.random.randint(0, 50, (3,5))  # 3行5列,共15个随机数,都介于[0,50]
array([[44, 34, 35, 28, 18],
       [24, 24, 26,  4, 21],
       [30, 40,  1, 24, 17]])
>>> np.random.rand(10)               # 10个介于[0,1)的随机数
array([ 0.58193552,  0.11106142,  0.13848858,  0.61148304,  0.72031503,
        0.12807841,  0.49999167,  0.24124012,  0.15236595,  0.54568207])
>>> np.random.standard_normal(5)     # 从标准正态分布中随机采样5个数字
array([2.82669067, 0.9773194, -0.72595951, -0.11343254, 0.74813065])

使用append()和insert()函数在原数组的基础上追加或插入新元素并返回新数组,也可用下标方式直接修改数组中的一个或多个元素的值。

>>> x = np.arange(8)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.append(x, 8)               # 返回新数组,在尾部追加一个元素
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>> np.append(x, [9,10])          # 返回新数组,在尾部追加多个元素
array([0, 1, 2, 3, 4, 5, 6, 7, 9, 10])
>>> x                             # 不影响原来的数组
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> x[3] = 8                      # 使用下标的形式原地修改元素值
>>> x                             # 原来的数组被修改了
array([0, 1, 2, 8, 4, 5, 6, 7])
>>> np.insert(x, 1, 8)         # 在下标1的位置插入元素8,返回新数组
array([0, 8, 1, 2, 8, 4, 5, 6, 7])

切片

>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> a[::-1]               # 反向切片
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
>>> a[::2]                # 隔一个取一个元素
array([0, 2, 4, 6, 8])
>>> a[:5]                 # 前5个元素
array([0, 1, 2, 3, 4])

>>> c = np.arange(25)     # 创建数组
>>> c.shape = 5,5         # 修改数组形状
>>> c
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, 24]])
>>> c[0, 2:5]             # 第0行中下标[2,5)之间的元素值
array([2, 3, 4])
>>> c[1]                  # 第1行所有元素
                          # 不指定列下标,表示所有列
array([5, 6, 7, 8, 9])
>>> c[2:5, 2:5]           # 行下标和列下标都介于[2,5)之间的元素值
array([[12, 13, 14],
       [17, 18, 19],
       [22, 23, 24]])

>>> c[[1,3], [2,4]]      # 第1行第2列的元素和第3行第4列的元素
array([ 7, 19])
>>> c[[1,3], 2:4]        # 第1行和第3行的第2、3列
array([[ 7,  8],
       [17, 18]])
>>> c[:, [2,4]]          # 第2列和第4列所有元素,对行下标进行切片,冒号表示所有行
array([[ 2,  4],
       [ 7,  9],
       [12, 14],
       [17, 19],
       [22, 24]])
>>> c[:, 3]              # 第3列所有元素
array([ 3,  8, 13, 18, 23])
>>> c[[1,3]]             # 第1行和第3行所有元素
array([[ 5,  6,  7,  8,  9],
       [15, 16, 17, 18, 19]])
>>> c[[1,3]][:, [2,4]]   # 第1、3行的2、4列元素
array([[ 7,  9],
       [17, 19]])

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值