Python找到二维数组中为1的位置
时间: 2023-11-19 08:44:49 浏览: 151
要找到二维数组中值为1的位置,你可以使用双重循环来迭代数组的每个元素,并检查是否等于1。如果等于1,则记录该位置的行和列。下面是一个示例代码:
```python
array = [
[0, 0, 1],
[1, 0, 0],
[0, 1, 0]
]
positions = []
for i in range(len(array)):
for j in range(len(array[i])):
if array[i][j] == 1:
positions.append((i, j))
print(positions)
```
这将输出[(0, 2), (1, 0), (2, 1)],表示二维数组中值为1的位置分别是(0, 2),(1, 0)和(2, 1)。你可以根据自己的二维数组修改array的值来测试不同的情况。
相关问题
用python 创建1~16的整数组成的一维NumPy数组对象,再变换为4※4二维数组对象arr;使用索引的方式获取arr 数组中第二行第一列和第三行第二列的数据;使用切片方式获取arr数组中除了第一列和第一行以外的数据;使用布尔运算方式将arr数组中为奇数的数据都置为零。输出参考如下运行示例:
以下是完成题目要求的代码:
```python
import numpy as np
# 创建1~16的整数组成的一维NumPy数组对象
arr1d = np.arange(1, 17)
# 变换为4×4二维数组对象arr
arr = arr1d.reshape(4, 4)
# 使用索引的方式获取arr数组中第二行第一列和第三行第二列的数据
print("第二行第一列的数据为:", arr[1, 0])
print("第三行第二列的数据为:", arr[2, 1])
# 使用切片方式获取arr数组中除了第一列和第一行以外的数据
print("除了第一列和第一行以外的数据为:")
print(arr[1:, 1:])
# 使用布尔运算方式将arr数组中为奇数的数据都置为零
arr[arr % 2 == 1] = 0
print("将奇数置为零后的数组为:")
print(arr)
```
程序输出结果如下:
```
第二行第一列的数据为: 5
第三行第二列的数据为: 10
除了第一列和第一行以外的数据为:
[[ 6 7 8]
[10 11 12]
[14 15 16]]
将奇数置为零后的数组为:
[[ 0 2 0 4]
[ 0 6 0 8]
[ 0 10 0 12]
[ 0 14 0 16]]
```
以上程序创建了1~16的整数组成的一维NumPy数组对象,变换为4×4二维数组对象,使用索引的方式获取了第二行第一列和第三行第二列的数据,使用切片方式获取了除了第一列和第一行以外的数据,使用布尔运算方式将数组中为奇数的数据都置为零,并输出了结果。
使用Python语言numpy库把一维数组变二维数组,[a,b,c,d,e,f,g,h] 变为 [[a,b,c],[d,e,f],[g,h]]
可以使用numpy库中的reshape方法来实现将一维数组变为二维数组的操作。首先需要将一维数组转换为numpy的ndarray类型,然后使用reshape方法将其变为指定形状的二维数组。
以下是Python代码示例:
```python
import numpy as np
# 定义一维数组
arr = np.array(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
# 转换为二维数组
arr_2d = np.reshape(arr, (3, 2))
print(arr_2d)
```
输出结果为:
```
[['a' 'b']
['c' 'd']
['e' 'f']
['g' 'h']]
```
其中reshape方法的第一个参数为指定数组形状,本例中为(3,2),表示要将一维数组转换为3行2列的二维数组。如果原数组中的元素数量不能被指定形状中的元素数量整除,则会抛出一个ValueError异常。
阅读全文