numpy简单教程-索引操作

一 取一个矩阵的子矩阵
import numpy as np
a=np.array([[1,2,3,4],
          [5,6,7,8],
          [9,10,11,12]])
#-2代表倒数第2行,1:3代表从第1列到第3列,但不包含第3列
a[-2:,1:3]
array([[ 6, 7],
       [10, 11]])
#错误写法
a[-2:][1:3]
array([[ 9, 10, 11, 12]])
二 取矩阵中某个元素的值
a[1,-2]
7
三 查看数组和维度
a
array([[ 1, 2, 3, 4],
       [ 5, 6, 7, 8],
       [ 9, 10, 11, 12]])
a.shape
(3, 4)
b=a[-2:,1:3]
b.shape
(2, 2)
b=a[2,1:3]
b
array([10, 11])
b.shape
(2,)
b=a[1,2]
b
7
b.shape
()
#使用整数索引,维度为减1
b=a[2,1:3]
b
array([10, 11])
b.shape
(2,)
#使用范围索引,维度不会发生变化:
b=a[2:3,1:3]
b
array([[10, 11]])
b.shape
(1, 2)
四 每行第2个元素加10
#第一种写法
a
array([[ 1, 2, 3, 4],
       [ 5, 6, 7, 8],
       [ 9, 10, 11, 12]])
a[np.arange(3),1]+=10
a
array([[ 1, 12, 3, 4],
       [ 5, 16, 7, 8],
       [ 9, 20, 11, 12]])
#第二种写法
a[np.arange(3),[1,1,1]]+=10
a
array([[ 1, 22, 3, 4],
       [ 5, 26, 7, 8],
       [ 9, 30, 11, 12]])
#第三种写法
a[[0,1,2],[1,1,1]]+=10
a
array([[ 1, 32, 3, 4],
       [ 5, 36, 7, 8],
       [ 9, 40, 11, 12]])
五 产生一个指定范围内数字的数组
np.arange(3)
array([0, 1, 2])
np.arange(3,7)
array([3, 4, 5, 6])
六 数组中元素大于10的元素
a
array([[ 1, 32, 3, 4],
       [ 5, 36, 7, 8],
       [ 9, 40, 11, 12]])
#第一种写法
result_index=a>10
result_index
array([[False, True, False, False],
       [False, True, False, False],
       [False, True, True, True]])
a[result_index]
array([32, 36, 40, 11, 12])
#第二种写法
a[a>10]
array([32, 36, 40, 11, 12])


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值