我使用 Jupyter 笔记本,我是 Python 新手,我尝试从多维数组中的用户获取值,我该怎么做?我写了一些代码,在输入第一个值后出现我不明白的错误
Error:
Traceback (most recent call last)
<ipython-input-64-4d8986a5e412> in <module>
5 for i in range(lengthrow):
6 for j in range(lengthcol):
----> 7 arr[i][j]=int(input("enter value"))
8 print(arr)
IndexError:索引 0 超出尺寸为 0 的轴 0 的范围
code:
from numpy import*
arr = array([[],[]])
lengthrow=int(input("enter array row length"))
lengthcol=int(input("enter array col length"))
for i in range(lengthrow):
for j in range(lengthcol):
arr[i][j]=int(input("enter value"))
print(arr)
我接受了@Austin 很好的答案并做了一些小改动:
import numpy as np
n_rows = int(input("Enter number of rows: "))
n_cols = int(input("Enter number of columns: "))
arr = [[int(input("Enter value for {}. row and {}. column: ".format(r + 1, c + 1))) for c in range(n_cols)] for r in range(n_rows)]
print(np.array(arr))
输出是:
Enter number of rows: 2
Enter number of columns: 3
Enter value for 1. row and 1. column: 1
Enter value for 1. row and 2. column: 2
Enter value for 1. row and 3. column: 3
Enter value for 2. row and 1. column: 4
Enter value for 2. row and 2. column: 5
Enter value for 2. row and 3. column: 6
[[1 2 3]
[4 5 6]]
您遇到了异常,因为您初始化了一个空数组并使用了无效索引。通过这个答案,您可以在输入用户输入后生成数组。
这是单行的长版本(arr = [[...
)这会给你相同的结果:
outer_arr = []
for r in range(n_rows):
inner_arr = []
for c in range(n_cols):
num = int(input("Enter value for {}. row and {}. column: ".format(r + 1, c + 1)))
inner_arr.append(num)
outer_arr.append(inner_arr)
print(np.array(outer_arr))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)