内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

ndarray的集合运算

2018-04-16 17:33 出处:清屏网 人气: 评论(0

unique(x) : 对x里的数据去重,并返回有序结果.

intersect1d(x, y) :计算x和y中的公共元素,并返回有序结果, x & y

union1d(x, y) :计算x和y的并集,并返回有序结果, x | y

setdiff1d(x, y): 集合的差,即元素在x中且不在y中. x - y, y - x

in1d(x, y) : 得到一个表示“x的元素是否包含于y”的布尔型数组.

setxor1d(x, y): 对称差集,两个数组中互相不包含的元素。x ^ y

import numpy as np

names = np.array(['ccc', 'bbb', 'ccc', 'aaa', 'ddd', 'eee', 'ccc'])
ndarray1 = np.random.randint(1, 5, 10)
ndarray2 = np.random.randint(1, 5, (3, 4))


## 1. 去重并排序

print(ndarray1)
# [1 3 2 4 3 3 4 4 1 1]

print(ndarray2)
# [[1 1 3 2]
#  [2 4 1 2]
#  [2 3 4 3]]

# 去重并排序
np.unique(names)
# array(['aaa', 'bbb', 'ccc', 'ddd', 'eee'], dtype='<U3')

np.unique(ndarray1)
#    array([1, 2, 3, 4])


## 2. 计算两个数组交集
ndarray3 = np.arange(1, 10)
ndarray4 = np.arange(5, 15)

print(ndarray3)
# [1 2 3 4 5 6 7 8 9]

print(ndarray4)
# [ 5  6  7  8  9 10 11 12 13 14]

np.intersect1d(ndarray3, ndarray4)
# array([5, 6, 7, 8, 9])


## 3. 计算两个数组并集
ndarray5 = np.arange(1, 10)
ndarray6 = np.arange(5, 15)

print(ndarray5)
# [1 2 3 4 5 6 7 8 9]

print(ndarray6)
# [ 5  6  7  8  9 10 11 12 13 14]

np.union1d(ndarray5, ndarray6)
#    array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14])


## 4. 数组中的元素是否在另一个数组中存在
ndarray7 = np.arange(1, 6)
ndarray8 = np.arange(3, 8)

print(ndarray7)
# [1 2 3 4 5]

print(ndarray8)
# [3 4 5 6 7]

np.in1d(ndarray7, ndarray8)
#    array([False, False,  True,  True,  True], dtype=bool)

## 5. 计算两个数组的差集
ndarray9 = np.arange(1, 6)
ndarray10 = np.arange(3, 8)

print(ndarray9)
# [1 2 3 4 5]

print(ndarray10)
# [3 4 5 6 7]

# ndarray9有 而 ndarray10 没有的部分
np.setdiff1d(ndarray9, ndarray10)
#    array([1, 2])

# ndarray10有 而 ndarray9 没有的部分
np.setdiff1d(ndarray10, ndarray9)
#    array([6, 7])


## 6. 计算两个数组的对称差集
np.setxor1d(ndarray9, ndarray10)
#    array([1, 2, 6, 7])
分享给小伙伴们:
本文标签: ndarray集合运算

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号