正在创建不带numpy的数组



在我的家庭作业中,不允许使用numpy,但我刚才意识到了这一点。我必须删除所有的np.array((组件,并在不使用它们的情况下定义一个数组。我找不到路。例如,我必须得到这样的arr:

[[ 0  1  2  3  4  5  6]
[ 7  8  9 10 11 12 13]
[14 15 16 17 18 19 20]
[21 22 23 24 25 26 27]
[28 29 30 31 32 33 34]
[35 36 37 38 39 40 41]
[42 43 44 45 46 47 48]]

然而,当我删除这个部分时:arr=np.array(范围(0,N*N((

arr.shape=N,N

尝试使用其他东西,如果不使用numpy,我就无法获得这样的矩阵,也无法像上面那样对其进行整形。我真的被困在这里了。

import numpy as np
def rotate_clockwise(x):
return x[::-1].T

def find(element, matrix):
for i in range(len(matrix)):
for j in range(len(matrix[i])):
if matrix[i][j] == element:
return (i+1, j+1)
N = int(input())
S = int(input())
arr = np.array(range(0,N*N))
arr.shape = N,N
for i in range(S):
a,b,c = [int(x) for x in input().split()]
arr[a - 1:a + c, b - 1:b + c] = rotate_clockwise(arr[a - 1:a + c, b - 1:b + c])

M = int(input())
items = np.array(range(0,M))
for i in range(M):
danscisayisi=int(input())
items[i]=(danscisayisi)
for i in range(0, len(items)):
items[i] = int(items[i])
noktalar = np.array(range(0,M))
for i in range(M):
coord=(find(items[i],arr))
result = " ".join(str(x) for x in coord)
print(result)

您可以使用嵌套列表。构造它们的一种方便方法是使用(嵌套的(列表理解,例如

n_rows, n_cols = 7, 7
pseudo_array = [[row * n_cols + col for col in range(n_cols)] 
for row in range(n_rows)]
pseudo_array
[[0, 1, 2, 3, 4, 5, 6],
[7, 8, 9, 10, 11, 12, 13],
[14, 15, 16, 17, 18, 19, 20],
[21, 22, 23, 24, 25, 26, 27],
[28, 29, 30, 31, 32, 33, 34],
[35, 36, 37, 38, 39, 40, 41],
[42, 43, 44, 45, 46, 47, 48]]

编辑:注意NumPy数组也有逗号,只是它们也有自己的表示方法,所以print()不会显示逗号。如果你想对嵌套列表做一些类似的事情,你可以定义自己的打印功能,例如

def print_array(a):
""" Take a nested list a and print it like a NumPy array. """
for i, row in enumerate(a):
if i == 0:
first_char = '['
else: 
first_char = ' '
if i == len(a) - 1:
last_char = ']'
else: 
last_char = ''    
print(first_char + '[' + 
' '.join(str(i) for i in row) + ']' + last_char)

print_array(pseudo_array)
[[0 1 2 3 4 5 6]
[7 8 9 10 11 12 13]
[14 15 16 17 18 19 20]
[21 22 23 24 25 26 27]
[28 29 30 31 32 33 34]
[35 36 37 38 39 40 41]
[42 43 44 45 46 47 48]]

正如您所看到的,它看起来几乎像一个打印的NumPy数组,只是还没有实现漂亮的列对齐。

最新更新