python笔记:数组的一些操作
生活随笔
收集整理的這篇文章主要介紹了
python笔记:数组的一些操作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
- 1.對數(shù)組求指數(shù)和對數(shù)
- 2.數(shù)組的最值及其索引
- 3.按照行或者列求均值/求和/最大值/最小值/標準差/方差
- 4.取對角線元素
- 5.取兩個數(shù)組對應的最大或最小值
- 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))可以得到最大值對應的索引
但在numpy中的array沒有index方法,取而代之的是where,其又是list沒有的
numpy中還有argmax/argmin方法來獲取最值對應的索引,但是它返回順序查找(行優(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對應行數(shù),后者對應列數(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()進行計算,所得到的結果是一樣的。 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.9166666666666664.取對角線元素
a= np.array([[1,2],[0.5,3],[3,4]]) a.diagonal()輸出: array([1., 3.])5.取兩個數(shù)組對應的最大或最小值
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. ]]總結
以上是生活随笔為你收集整理的python笔记:数组的一些操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python,pycharm,anaco
- 下一篇: Scala,Spark和IDEA学习笔记