日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python笔记:数组的一些操作

發(fā)布時間:2025/3/20 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python笔记:数组的一些操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 1.對數(shù)組求指數(shù)和對數(shù)
  • 2.數(shù)組的最值及其索引
  • 3.按照行或者列求均值/求和/最大值/最小值/標準差/方差
  • 4.取對角線元素
  • 5.取兩個數(shù)組對應(yīng)的最大或最小值
  • 6.對數(shù)組重新排列

1.對數(shù)組求指數(shù)和對數(shù)

參考
指數(shù):
math.exp() 只能對一個數(shù)求指數(shù),不能對數(shù)組進行批量求指數(shù)
numpy.exp()既能對一個數(shù)求指數(shù),也能對數(shù)組進行批量求指數(shù)
對數(shù):
math.log()
numpy.log()
作用同上

2.數(shù)組的最值及其索引

參考
在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值對應(yīng)的索引

但在numpy中的array沒有index方法,取而代之的是where,其又是list沒有的

numpy中還有argmax/argmin方法來獲取最值對應(yīng)的索引,但是它返回順序查找(行優(yōu)先)下的索引,也就是沒有分別的行和列,而且有相同最值情況下,它只返回第一個最值的索引。

首先我們可以得到array在全局和每行每列的最大值(最小值同理)

>>> a = np.arange(9).reshape((3,3)) >>> a array([[0, 1, 2],[3, 4, 5],[6, 7, 8]]) >>> print(np.max(a)) #全局最大 8 >>> print(np.max(a,axis=0)) #每列最大 [6 7 8] >>> print(np.max(a,axis=1)) #每行最大 [2 5 8]

然后用where得到最大值的索引,返回值中,前面的array對應(yīng)行數(shù),后者對應(yīng)列數(shù)

>>> print(np.where(a==np.max(a))) (array([2], dtype=int64), array([2], dtype=int64)) >>> print(np.where(a==np.max(a,axis=0))) (array([2, 2, 2], dtype=int64), array([0, 1, 2], dtype=int64)) import numpy as npr = np.array([[-1,2,-3]]) # 輸出:2 a = np.argmin(r) print(a) # 輸出:1 b = np.argmax(r) print(b)

3.按照行或者列求均值/求和/最大值/最小值/標準差/方差

參考

import numpy as npa = np.arange(12).reshape(3, 4) print(a.shape) print(a) # (3, 4) # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]]# 返回得到數(shù)組中所有元素的和 print(np.sum(a)) # 66# 參數(shù)axis=0時,返回數(shù)組各列的和,參數(shù)axis=1時,返回數(shù)組各行的和。 print(np.sum(a, axis=0)) print(np.sum(a, axis=1)) # [12 15 18 21] # [ 6 22 38]# 不使用numpy的函數(shù)也是可以的,因為ndarndarray數(shù)組中也有相同的求和方法sum()。并且也可以通過參數(shù)axis指定行或列。 print(a.sum()) # 66print(a.sum(axis=0)) print(a.sum(axis=1)) # [12 15 18 21] # [ 6 22 38]# numpy.mean()的使用方法與numpy.sum()相同,也可以通過參數(shù)axis指定行或列。 print(np.mean(a)) # 5.5print(np.mean(a, axis=0)) print(np.mean(a, axis=1)) # [ 4. 5. 6. 7.] # [ 1.5 5.5 9.5]# 和sum()一樣,ndarray數(shù)組中也有相同的求平均值的方法mean()。并且也可以通過參數(shù)axis指定行或列。 print(a.mean()) # 5.5print(a.mean(axis=0)) print(a.mean(axis=1)) # [ 4. 5. 6. 7.] # [ 1.5 5.5 9.5]#在分別使用numpy.min()和numpy.max()求數(shù)組中元素的最小值與最大值的時候,也可以通過參數(shù)axis指定行或列。并且,為了使用方便,還可以直接使用函數(shù)numpy.amin()和numpy.amax()進行計算,所得到的結(jié)果是一樣的。 print(np.min(a)) print(np.min(a, axis=0)) print (np.amin(a,0)) # 0 # [0 1 2 3] # [0 1 2 3]print(a.max()) print(a.max(axis=1)) print(np.amax(a,1)) # 11 # [ 3 7 11] # [ 3 7 11]# 求標準差和方差的函數(shù)分別為numpy.std()和numpy.var()。使用方法和之前相同,也可以通過參數(shù)axis指定行或列。 print(np.std(a)) #3.452052529534663print(np.var(a)) #11.916666666666666

4.取對角線元素

a= np.array([[1,2],[0.5,3],[3,4]]) a.diagonal()輸出: array([1., 3.])

5.取兩個數(shù)組對應(yīng)的最大或最小值

a = [1,2,3] b = [1,3,1] a = np.minimum(a,b) a輸出: array([1, 2, 1])

6.對數(shù)組重新排列

a = np.array([[1,2],[0.5,3],[3,4]]) b = [2, 1, 3] c = np.argsort(b) print(c) bb = np.array(b)[c] print(bb) aa = np.array(a)[c] print(aa)輸出: [1 0 2] [1 2 3] [[0.5 3. ][1. 2. ][3. 4. ]]

總結(jié)

以上是生活随笔為你收集整理的python笔记:数组的一些操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。