numpy数组的运算

博客介绍了Numpy的基本运算,如整个array按顺序参与运算,二维数组用*按位置相乘,矩阵乘法用dot,还可使用内置函数并指定axis操作。同时讲解了寻址、索引和遍历,包括获取二维数组某行或某列数据,以及遍历array和对元素操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本运算:

整个array按顺序参与运算:

1

2

3

4

5

6

7

8

9

10

11

12

13

>>> a = np.array( [20,30,40,50] )

>>> b = np.arange( 4 )

>>> b

array([0123])

>>> c = a-b

>>> c

array([20293847])

>>> b**2

array([0149])

>>> 10*np.sin(a)

array([ 9.12945251-9.88031624,  7.4511316 -2.62374854])

>>> a<35

array([ TrueTrueFalseFalse], dtype=bool)

 

  • 两个二维使用*符号仍然是按位置一对一相乘,如果想表示矩阵乘法,使用dot:

     

1

2

3

4

5

6

7

8

9

10

11

12

13

>>> A = np.array( [[1,1],

...             [0,1]] )

>>> B = np.array( [[2,0],

...             [3,4]] )

>>> A*B                         # elementwise product

array([[20],

       [04]])

>>> A.dot(B)                    # matrix product

array([[54],

       [34]])

>>> np.dot(A, B)                # another matrix product

array([[54],

       [34]])

  • 内置函数(min,max,sum),同时可以使用axis指定对哪一维进行操作:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

>>> b = np.arange(12).reshape(3,4)

>>> b

array([[ 0,  1,  2,  3],

       4,  5,  6,  7],

       8,  91011]])

>>>

>>> b.sum(axis=0)                            # sum of each column

array([12151821])

>>>

>>> b.min(axis=1)                            # min of each row

array([048])

>>>

>>> b.cumsum(axis=1)                         # cumulative sum along each row

array([[ 0,  1,  3,  6],

       4,  91522],

       8172738]])

 

  • Numpy同时提供很多全局函数

1

2

3

4

5

6

7

8

9

10

>>> B = np.arange(3)

>>> B

array([012])

>>> np.exp(B)

array([ 1.        ,  2.71828183,  7.3890561 ])

>>> np.sqrt(B)

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

>>> C = np.array([2.-1.4.])

>>> np.add(B, C)

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

 

寻址,索引和遍历:

获得二维数组的某行或者某列数据

b=np.array([[ 0, 1, 2, 3],

[10, 11, 12, 13],

[20, 21, 22, 23],

[30, 31, 32, 33],

[40, 41, 42, 43]])

print(b[0:5, 1]) # 得到第2列,index=1

print(b[: , 1]) # 得到第2列,index=1

 

print(b[1,:]) # 获得第二行,index = 1

 


 

遍历:   

如果只想遍历整个array可以直接使用:

1

2

3

4

5

6

7

8

>>> for row in b:

...     print(row)

...

[0 1 2 3]

[10 11 12 13]

[20 21 22 23]

[30 31 32 33]

[40 41 42 43]

  

  • 但是如果要对每个元素进行操作,就要使用flat属性,这是一个遍历整个数组的迭代器

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值