微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

numpy必知必会-第三天

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.])

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐