Numpy必掌握的76道精选题型!!


本人学东西有点抠牛角尖,所以注释会详细点。希望大家可以从中学到些东西。

文章目录



1.创建数组的基本方法

#以一维数组为例
import numpy as np #首先导入numpy包
a = np.array([0, 1, 2, 3, 4]) #通过列表创建,注意是中括号
b = np.array((0, 1, 2, 3, 4)) #通过元组创建,注意是小括号
c = np.arange(0,5,1) #0是开始数字,5是结束数字(不含本身),1是间隔;也可以直接省略写成np.arange(5)
d = np.linspace(0, 5, 5,endpoint=False) #linspace 用于在指定的区间内返回间隔均匀的值。0是开始数字,中间5是结束数字,后面的5是元素个数,endpoint=False代表结束数字不含5本身
a,b,c,d

 (array([0, 1, 2, 3, 4]),
  array([0, 1, 2, 3, 4]),
  array([0, 1, 2, 3, 4]),
  array([0., 1., 2., 3., 4.]))

2.通过列表创建一维数组,数组包含1、2、3、4、5这5个数字即可。

a = np.array([1, 2, 3, 4, 5]) #[1, 2, 3, 4, 5]是列表,注意列表是中括号;array为返回数组的函数
a

  array([1, 2, 3, 4, 5])

3.输出该一维数组的形状特征

a.shape

  (5,)

4.输出该一维数组中的元素2与元素3

a[1],a[2] #列表[1, 2, 3, 4, 5]从左到右的索引依次是0,、1、2、3、4,故而a[1]输出2,a[2]输出3

 (2, 3)

5.将该一维数组中的元素1修改成-1

a[0] = -1
a

  array([-1, 2, 3, 4, 5])

6.通过列表创建二维数组

a=np.array([[1, 2, 3], [4, 5, 6]]) #可留意到与题2不同之处,该二维数组中外围有两层中括号
a

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

7.输出该二维数组的形状特征

a.shape #代表该二维数组是2行3列

  (2, 3)

8.分别输出该二维数组中的第1行与第2行

a[0],a[1] #留意与题3不同,a[0]表示第1行的索引0,取[1, 2, 3];a[1]表示第2行的索引1,取[4, 5, 6];

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

9.获取该二维数组中元素6

a[1, 2] #6在第2行第3列,而第2行的索引是1,第3列的索引是2,所以a[1, 2]

  6

10.将该二维数组中的元素6修改成-1

a[1, 2]=-1
a

 array([[ 1, 2, 3],
[ 4, 5, -1]])

11.通过列表创建三维数组

a=np.array([[[1, 2, 3], [4, 5, 6]], 
            [[7, 8, 9],[10, 11, 12]]]) #可留意到与题2题6不同之处,该三维数组中外围有三层中括号
a

 array([[[ 1, 2, 3],
[ 4, 5, 6]],

  [[ 7, 8, 9],
[10, 11, 12]]])

12.输出该三维数组的形状特征

a.shape #可以想象成立方体的长宽高,第一个2代表深度,第二个2代表2行,第三个3代表3列

  (2, 2, 3)

13.输出该三维数组中的[[1, 2, 3], [4, 5, 6]]

a[0] #索引0对应的是[[1, 2, 3], [4, 5, 6]]

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

14.输出该三维数组中的[4, 5, 6]

a[0,1] #索引0对应的是[[1, 2, 3], [4, 5, 6]],而索引1又对应其中的[4, 5, 6]

  array([4, 5, 6])

15.输出该三维数组中的元素9

a[1,0,2] #9位于[[ 7,  8,  9],[10, 11, 12]]中,而[[ 7,  8,  9],[10, 11, 12]]对应索引1,在[[ 7,  8,  9],[10, 11, 12]]中,9又是
         #位于第1行(索引0,第3列(索引2)),所以取索引1、0、2

  9

16.将该三维数组中的元素9修改成-1

a[1,0,2] =-1
a

  array([[[ 1, 2, 3],
         [ 4, 5, 6]],

        [[ 7, 8, -1],
         [10, 11, 12]]])

17.创建一维数组,所有元素为0

a = np.zeros((5)) #zeros填充0的函数。可以换成np.ones试试,全填充1
a

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

18.创建二维数组,所有元素为0

a = np.zeros((2,3)) #可以换成np.ones试试,全填充1
a

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

19.创建二维数组,所有元素为6

np.full((2,3), 6) #也可将6换成True看看效果

 array([[6, 6, 6],
       [6, 6, 6]])

20.创建二维数组,对角线填充1

np.eye(5, 4, 0) #5、4代表5行4列,0代表填充的1是从第0个索引开始的,右下角45度的方向填充1

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

21.取出一维数组中的某些元素

# 先创建一维数组a
a = np.arange(0, 100, 10)
a

 array([ 0, 10, 20, …, 70, 80, 90])

a[[1, 5, -1]] #索引1对应10,索引5对应50,索引-1对应90

  array([10, 50, 90])

a[1],a[5],a[-1] #或者采取此方法

  (10, 50, 90)

22.取出一维数组的前5个元素

a[:5]

 array([ 0, 10, 20, 30, 40])

23.取出一维数组中大于某个值的元素

a[a >= 60]

  array([60, 70, 80, 90])

24.取出一维数组中小于某个值的元素

a[np.where(a<= 60)] #np.where(a<= 60)取出的是索引,不是元素,所以需要再在外侧加上a[]

 array([ 0, 10, 20, …, 40, 50, 60])

25.取出二维数组中的某些元素

# 先创建一个二维数组
a = np.array([[11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25],
              [26, 27, 28 ,29, 30],
              [31, 32, 33, 34, 35]])
a[0, 1:4] #0代表第1行(索引从0开始的),1:4代表第一行的12(索引1)、13(索引2)、14(索引3)

  array([12, 13, 14])

a[1:4, 0] #1:4代表中间的三行,0代表第一列,交叉就是[16, 21, 26]

  array([16, 21, 26])

26.取出二维数组中的某些元素

a[::2,::2] #左侧::2代表所有行࿰
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值