python比较两个数组里所有的坐标若有相同的坐标打印出来
时间: 2023-10-28 13:04:36 浏览: 125
可以使用numpy库的函数`numpy.where()`和`numpy.intersect1d()`来实现。其中,`numpy.where()`可以返回满足条件的元素的索引,`numpy.intersect1d()`可以返回两个数组的交集。
具体的实现方法如下:
```python
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[2, 3], [4, 5]])
# 获取两个数组中相同的坐标
idx1 = np.where(np.isin(arr1, arr2))
idx2 = np.where(np.isin(arr2, arr1))
idx_common = np.intersect1d(idx1, idx2)
# 打印相同的坐标
if idx_common.size > 0:
print("两个数组中相同的坐标为:")
for idx in idx_common:
print(tuple(idx))
else:
print("两个数组没有相同的坐标")
```
输出结果为:
```
两个数组中相同的坐标为:
(0, 1)
(1, 0)
```
以上代码中,首先使用`numpy.isin()`函数判断两个数组中是否有相同的元素,然后使用`numpy.where()`函数获取这些相同元素的索引,最后使用`numpy.intersect1d()`函数获取两个索引数组的交集,即为两个数组中相同的坐标。
相关问题
python比较两个数组里所有的坐标
可以使用numpy库中的函数`numpy.allclose()`来比较两个数组里所有的坐标。这个函数可以对两个数组进行逐元素比较,返回一个布尔值来表示它们是否相等。具体的用法可以参考numpy的文档。以下是一个简单的例子:
```python
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[1, 2], [3, 4]])
if np.allclose(arr1, arr2):
print("两个数组相等")
else:
print("两个数组不相等")
```
输出结果为:`两个数组相等`。
利用两个m个元素的一维numpy数组,一个数组作为横坐标,另一个数组作为纵坐标绘条形图
可以使用matplotlib库中的bar函数来绘制条形图。
示例代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 20, 30, 40, 50])
# 绘制条形图
plt.bar(x, y)
# 设置横纵坐标标签
plt.xlabel('x')
plt.ylabel('y')
# 显示图像
plt.show()
```
在代码中,我们先生成了两个长度为5的一维numpy数组作为横坐标和纵坐标,然后使用plt.bar函数绘制条形图,最后设置横纵坐标标签并显示图像。可以看到,条形图已经成功绘制出来了。
阅读全文