Numpy 基础运算2

本文介绍了Numpy的基本运算,包括创建矩阵、查找最小和最大元素的索引、计算矩阵均值、使用cumsum()函数进行累计求和、累差运算、nonzero()函数获取非零元素坐标、排序操作、矩阵转置以及clip()函数限制元素范围。建议参考Numpy官方英文教材和莫烦Python教程进一步学习。

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

本文numpy 对应元素的索引

基本运算

创建矩阵A
argmin() 和 argmax() 函数分别对应矩阵中最小元素和最大元素的索引

import numpy as np
A = np.arange(2,14).reshape((3,4)) 

# array([[ 2, 3, 4, 5]
#        [ 6, 7, 8, 9]
#        [10,11,12,13]])
         
print(np.argmin(A))    # 0
print(np.argmax(A))    # 11

求整个矩阵的均值

print(np.mean(A))        # 7.5
print(np.average(A))     # 7.5

仿照dot() 的使用法则,mean()函数还有另外一种写法

np.median(A)
Out[95]: 7.5

累加函数cumsum()函数
cumsum()函数中:生成的每一项矩阵元素均是从原矩阵首项累加到对应项的元素之和。
比如元素9,在cumsum()生成的矩阵中序号为3,即原矩阵中2,3,4三个元素的和。

print(np.cumsum(A)) 

# [2 5 9 14 20 27 35 44 54 65 77 90]

累差运算函数:
该函数计算的便是每一行中后一项与前一项之差。
一个3行4列矩阵通过函数计算得到的矩阵便是3行3列的矩阵。

np.diff(A)
Out[98]: 
array([[1, 1, 1],
       [1, 1, 1],
       [1, 1, 1]])

nonzero()函数:
将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。

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

对所有元素进行仿照列表一样的排序操作,但这里的排序函数仍然仅针对每一行进行从小到大排序操作:

A = np.arange(14,2, -1).reshape((3,4)) 
# array([[14, 13, 12, 11],
#       [10,  9,  8,  7],
#       [ 6,  5,  4,  3]])

print(np.sort(A))    
# array([[11,12,13,14]
#        [ 7, 8, 9,10]
#        [ 3, 4, 5, 6]])

矩阵的转置两种表示:

print(np.transpose(A))    
print(A.T)

# array([[14,10, 6]
#        [13, 9, 5]
#        [12, 8, 4]
#        [11, 7, 3]])
# array([[14,10, 6]
#        [13, 9, 5]
#        [12, 8, 4]
#        [11, 7, 3]])

clip()函数
函数的格式是clip(Array,Array_min,Array_max)
Array是被执行的矩阵,而后面的最小值最大值则用于让函数判断矩阵中元素是否有比最小值小的或者比最大值大的元素,并将这些指定的元素转换为最小值或者最大值。

print(A)
# array([[14,13,12,11]
#        [10, 9, 8, 7]
#        [ 6, 5, 4, 3]])

print(np.clip(A,5,9))    
# array([[ 9, 9, 9, 9]
#        [ 9, 9, 8, 7]
#        [ 6, 5, 5, 5]])

每一个Numpy中大多数函数均具有很多变量可以操作,你可以指定行、列甚至某一范围中的元素。
更多具体的使用细节请记得查阅Numpy官方英文教材。

参考莫烦Python,简单易懂!
打call https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/2-2-np-array/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值