data = np.sin(np.arange(20)).reshape(5, 4)
print (data)
ind = data.argmax(axis=0) # 按列得到每一列中最大元素的索引,axis=1为按行
print (ind)
data_max = data[ind, range(data.shape[1])] # 将最大值取出来
print (data_max)
# 输出 [[ 0. 0.84147098 0.90929743 0.14112001]
[-0.7568025 -0.95892427 -0.2794155 0.6569866 ]
[ 0.98935825 0.41211849 -0.54402111 -0.99999021]
[-0.53657292 0.42016704 0.99060736 0.65028784]
[-0.28790332 -0.96139749 -0.75098725 0.14987721]]
[2 0 3 1]
[ 0.98935825 0.84147098 0.99060736 0.6569866 ]
print data.max(axis=0) #也可以直接取最大值
# 输出 [ 0.98935825 0.84147098 0.99060736 0.6569866 ]
3.多重复制:tile()
import numpy as np
a = np.array([5, 10, 15])
print(a)
print('---')
b = np.tile(a, (4, 1)) # 参数(4, 1)为按行复制4倍,按列复制1倍
print(b)
# 输出 [ 5 10 15]
[[ 5 10 15]
[ 5 10 15]
[ 5 10 15]
[ 5 10 15]]
c = np.tile(a, (2, 3)) # 参数(2, 3)为按行复制2倍,按列复制3倍
print(c)
# 输出 [[ 5 10 15 5 10 15 5 10 15]
[ 5 10 15 5 10 15 5 10 15]]
4.两个矩阵对应元素取最小值:minimum()
import numpy as np
a = array([[21,-12,11],[1,-3,5],[3,4,5]])
b = array([[11,12,13],[2,3,4],[3,4,5]])
c = minimum(a,b)
array([[ 11, -12, 11],
[ 1, -3, 4],
[ 3, 4, 5]])
5.使用Python random模块的choice方法随机选择某个元素
foo = ['a', 'b', 'c', 'd', 'e']
from random import choice
print choice(foo)
1.排序: sort()# 方法一:import numpy as npa = np.array([[4,3,5,],[1,2,1]])print (a)b = np.sort(a, axis=1) # 对a按每行中元素从小到大排序print (b)# 输出 [[4 3 5] [1 2 1]][[3 4 5] [1 1 2]]# 方法二:import numpy as
(array1 == array2) 返回两个矩阵中对应元素是否相等的逻辑值
(array1 == array2).all()当两个矩阵所有对应元素相等,返回一个逻辑值True
(array1 == array2).any()当两个矩阵所有任何一个对应元素相等,返回一个逻辑值True
2.举例如下:
>>> a = np.array([1,2,3])
网址:https://blog.csdn.net/jiajing_guo/article/details/62223217
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jiajing_Guo/article/details/62223217 </div>
Python: Numpy中array的方法函数min和max作为array数组的方法min()min(i)
作为array数组的方法
对于类型为array的数组,可以直接调用最小值的方法函数min(),和最大值方法函数max()。以下仅以min()为例说明,该函数具体用法与numpy.amin()类似。1
min()
一个简单的应用实例为:
from numpy import *
arrayTe...
b.其中一个矩阵的行数或者列数是1
(2)行数是一行的情况,相当于对矩阵进行行扩展,缺少的行的元素值与该行的元素值相同
score_test_1 = np.array([ [0,0,0],[1,1,1],[2,2,2] ])
score_test_2 = np.array([10,10,10])
NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。
'quicksort'(快速排序)
O(n^2)
'mergesort'(归并排序)
O(n*log(n))
'heapsort'(堆排序)
O(n*log(n)
排序numpy.sort()
numpy.sort(a[, axis=-1, kind='quicksort', order=None]) Return a sorted copy of an array.
axis:排序沿数组的(轴)方向,0表示按列,1表示按行,None表示展开来排序,默认为-1,表示沿最后的轴排序(二维行,列,二维中最后一轴就是列轴。三维,x,y,z轴),将指定轴上的每一个元素都按照从小到大的顺序排列。=None 都拿出来排列
默认为-1表示根据最大的维度进行排序,例如该数组为.
import numpy as np
a = np.array([[1,2,3,3],[4,5,6,2],[0,8,4,9]])
print(a.max()) #获取整个矩阵的最大值 结果:9
print(a.min())...
from numpy\core\fromnumeric.py
@array_function_dispatch(_argsort_dispatcher)
def argsort(a, axis=-1, kind=None, order=None):
Returns the indices that would sort an array.
返回将对数组进行排序的索引...
在numpy的ndarray类型中,似乎没有直接返回特定索引的方法,我只找到了where函数,但是where函数对于寻找某个特定值对应的索引很有用,对于返回一定区间内值的索引不是很有效,至少我没有弄明白应该如何操作。下面先说一下where函数的用法吧。
(1)where函数的使用场景:
例如现在我生成了一个数组:
import numpy as np
arr=np.array([1,1,1
返回每行或者每列最大值索引号的函数argmax,类似的还有argsort等
import numpy as np
data = np.sin(np.arange(20)).reshape(5,4)
print(data)
ind = data.argmax(axis=0)#求每列的最大值的索引号[2 0 3 1]
inc = data.argmax()#返回的是所有元素最大值的标号14
print( ind)
print( inc)
data_max = data[ind, range(data.shap