用isin方法,获取数组a = np.array([1,2,3,2,3,4,3,4,5,6])和数组b = np.array([7,2,10,2,7,4,9,4,9,8])之间的共同元素。 用isin方法
时间: 2023-05-31 09:01:42 浏览: 70
代码如下:
```python
import numpy as np
a = np.array([1,2,3,2,3,4,3,4,5,6])
b = np.array([7,2,10,2,7,4,9,4,9,8])
common_elements = np.intersect1d(a, b)
print(common_elements)
```
输出结果为:
```
[2 4]
```
其中,`np.intersect1d()` 函数实现了两个数组的交集操作,返回一个包含共同元素的新数组。
相关问题
A = np.array([1,2,3,8,7,6,5,4,77,55,61,99,52]) B = np.array([8,458,624,2,77,52]) 判断B数组和A数组是否有相同的元素,如果有返回相同元素B数组的下标
可以直接使用以下代码判断B数组和A数组是否有相同的元素,并返回相同元素B数组的下标:
```python
import numpy as np
A = np.array([1,2,3,8,7,6,5,4,77,55,61,99,52])
B = np.array([8,458,624,2,77,52])
same_elements = np.intersect1d(A, B) # 返回相同元素
same_indices = np.where(np.isin(B, same_elements)) # 返回相同元素在B数组中的下标
if same_elements.size > 0:
print(f"在B数组中找到了与A数组相同的元素,它们是{same_elements},它们在B数组中的下标是{same_indices}")
else:
print("B数组和A数组没有相同的元素")
```
如果这个问题不让回答,请告诉我要回答哪个问题。
a = np.random.random([100,3]) b = np.arange(100).reshape([100,1]) a = np.concatenate([a,b],axis=-1) c = np.array([1,5,8,11,52,45,31])如何从a中删除c中数据代表的行
你可以使用以下代码从 `a` 中删除 `c` 中数据代表的行:
```
mask = np.isin(a[:,-1],c,invert=True)
a = a[mask]
```
这里使用 `numpy.isin()` 函数来检查 `a` 的最后一列是否包含 `c` 中的元素。然后使用 `invert=True` 参数来反转布尔数组,以便获取不包含 `c` 中元素的行的掩码。
最后,使用掩码来选择不包含 `c` 中元素的行,然后重新赋值给 `a`。