11 找到两个array中的通用项,并保存在新的array中
例如:
输入a = np.array([1,2,3,4,5,6]),b = np.array([7,10,7,9,8])
输出array([2,4])
a = np.array([1,6]) b = np.array([7,8]) np.intersect1d(a,b)
输出:
array([2,4])
12 从一个array中移除被另一个array包含的元素
例如:
输入a = np.array([1,5]),b = np.array([5,6,8,9])
输出array([1,5])
b = np.array([5,9])
np.setdiff1d(a,b)
输出
array([1,4])
13 找到两个array中元素一样的位置
输入a = np.array([1,8])
输出(array([1,7]),)
a = np.array([1,1)">]) np.where(a == b)
输出:
(array([1,)
注意比较的两个array的长度必须一致!
14 如何从一个array中筛选出一个范围内的元素
例如:
输入a = np.array([2,1,27])
输出(array([6,10]),)
a = np.array([2,27]) index = np.where((a >= 5) & (a <= 10)) a[index]
输出
array([ 6,10])
还可以用以下方式实现:
index = np.where(np.logical_and(a>=5,a<=10))
a[index]
a[(a >= 5) & (a <= 10)]
15 通过自定义的python函数,处理两个array中元素
例如:
输入
def maxx(x,y):
"""Get the maximum of two items"""
if x >= y:
return x
else:
return y
maxx(1,5)
输出
a = np.array([5,5])
b = np.array([6,1])
pair_max(a,b)
先介绍一下numpy.vectorize
numpy.vectorize(pyfunc,otypes=None,doc=None,excluded=None,cache=False,signature=None)
Parameters:
pyfunc :python函数或方法 otypes : 输出数据类型。必须将其指定为一个typecode字符串或一个数据类型说明符列表。每个输出应该有一个数据类型说明符。 doc : 函数的docstring。如果为None,则docstring将是 pyfunc.doc。
简单说就是把pyfunc的处理结果放到一个array中,组成向量。
def maxx(x,y): """获得两个array中的最大值""" if x >= y: return x else: y pair_max = np.vectorize(maxx,otypes=[float]) a = np.array([5,1)">]) b = np.array([6,1]) pair_max(a,b)
输入
array([6.,7.,9.,8.,5.])