난 로렌아줌마가 정의하십시오 이차원 어레이입니다 초기화되었습니다 길이 없는 다음과 같습니다.
Matrix = [][]
하지만 작동하지 않습니다.
아래 코드는 i& # 39, ve, 그러나 그것은 잘못된 너무 했다.
Matrix = [5][5]
Error:
Traceback ...
IndexError: list index out of range
어떤 것이 나의 실수?
comprehension" 나열하십시오 ";).
# Creates a list containing 5 lists, each of 8 items, all set to 0
w, h = 8, 5;
Matrix = [[0 for x in range(w)] for y in range(h)]
Matrix[0][0] = 1
Matrix[6][0] = 3 # error! range...
Matrix[0][6] = 3 # valid
참고로, 행렬 () 는 " y"; 즉, y, 주소, 주요 " index". 먼저 x index" 않했노라 ";).
print Matrix[0][0] # prints 1
x, y = 0, 6
print Matrix[x][y] # prints 3; be careful with indexing!
내가 원하는 대로 꼽을 수 있지만, 일부 혼란이 발생할 수 있는 이 피할 길은 이것좀봐 인덱스화를 함께 사용하는 경우, " x"; 모두 알고 있으며, 내부 및 외부 열거합니다 정사각형이 아닌 한 호환표에.
진짜 원한다면, '매트릭스' 누마피 사용하는 것이 좋습니다 될 수 있습니다. '유형' 에 가장 많이 사용하는 두 개의 치수에는 행렬 연산을 누마피 어레이에서는. 여러 가지 방법으로 만들 수 있습니다 새로운 스토리지였습니다. 그 중 가장 유용한 것은 '제로' 기능을 담당하는 매개변수입니다 되돌려줍니다 모양 및 지정된 값으로 초기화되어 배열입니다 모양, 제로:
>>> import numpy
>>> numpy.zeros((5, 5))
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
'누마피' 는 '매트릭스' 방식의 잘 알려져 있다. # 39 의 it& 자주 사용하지 않는, 일부 사람들은 [추천합니까 어하여] (https://stackoverflow.com/a/3892639/577088) 를 거잖나. 그러나 it& # 39 에 유용한 가고 있으며 어떤 사람들을 위한 ',' 누마피 matlab 에서 컨텍스트로는. # 39 생각해봤죠 I&; d # 39, 얘기를 하고 있기 때문에 다시 포함시키십시오 we& 호환표!
>>> numpy.matrix([[1, 2], [3, 4]])
matrix([[1, 2],
[3, 4]])
만드는 방법은 몇 가지 다른 2 차원 배열 및 호환표 (함께 재거됨 출력입니다 대한 콤팩트성):
numpy.matrix('1 2; 3 4') # use Matlab-style syntax
numpy.arange(25).reshape((5, 5)) # create a 1-d range and reshape
numpy.array(range(25)).reshape((5, 5)) # pass a Python range and reshape
numpy.array([5] * 25).reshape((5, 5)) # pass a Python list and reshape
numpy.empty((5, 5)) # allocate, but don't initialize
numpy.ones((5, 5)) # initialize with ones
numpy.ndarray((5, 5)) # use the low-level constructor
다음은 바뀌엇어요 초기화중 짧은 표기 목록:
matrix = [[0]*5 for i in range(5)]
이 같은 일이 죄송합니다. 단축 ',' t really 작동합니까 doesn& 5 [5 [0]] # 39 끝날 수 있기 때문에 5 개 중 1 명은 모두 동일한 목록에 도왔으매 복제본입니다 수정할 때 바꼈소, 예를 들면 다음과 같습니다.
>>> matrix = 5*[5*[0]]
>>> matrix
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
>>> matrix[4][4] = 2
>>> matrix
[[0, 0, 0, 0, 2], [0, 0, 0, 0, 2], [0, 0, 0, 0, 2], [0, 0, 0, 0, 2], [0, 0, 0, 0, 2]]
만약 모든 운영까지도 편리하게 사용할 수 있습니다 () 는 2 차원 컨테이너입니다 일부 요소를 가질 수 있도록 사전 사용하십시오.
Matrix = {}
그럼 할 수 있다.
Matrix[1,2] = 15
print Matrix[1,2]
이 때문에 튜플 및 you& # 39 는 1.2 ',' 는 re 핵심 정보기술 (it) 을 사용하여 색인 사전. 그 결과 벙어리 희소행렬 비슷합니다.
Osa 표시된 조사이프 발스 (람다 (λ) 0) '와' 매트릭스 = 콜레스티론스데포트디스 사용할 수도 있습니다 수 있도록 '0' 의 기본값입니다 누각되었습니다 요소를 가지고 있다.
이 방법은 바살 기업에서든 점은 매우 효율적인 것이 아닐 수 있는 대규모 호환표 코드의 일부를 비사양 성능이 중요한 사용해야 합니다.
Python 에서 열거합니다 목록을 만들 수 있습니다. 미리 수 있지만 치수들을 선언할 필요가 없습니다. 예를 들면 다음과 같습니다.
matrix = []
matrix.append([])
matrix.append([])
matrix[0].append(2)
matrix[1].append(3)
이제 호환표에 [0] [0] [1] [0] = 3 = 2, 행렬. 나열하십시오 구문을 사용하여 표현할 수도 있습니다. 이 예제는 두 번 더 구축하십시오 이차원 list" ";:
from itertools import count, takewhile
matrix = [[i for i in takewhile(lambda j: j < (k+1) * 10, count(k*10))] for k in range(10)]
합니다 사용할 수 있는 최선의 방법은 네스트된 목록니다 목록 및 지능형:
>>> matrix = [[0 for i in range(5)] for j in range(5)]
>>> pprint.pprint(matrix)
[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]]
[5] [5] '' 에 들어 있는 목록을 분판할 정수 " 5"; 그 안에 있는 한, 그 5 항목 및 액세스하려는 없기 때문에 자연스럽게 안드레스 호르 5 항목:
>>> l = [5]
>>> l[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
rows = int(input())
cols = int(input())
matrix = []
for i in range(rows):
row = []
for j in range(cols):
row.append(0)
matrix.append(row)
print(matrix)
왜 이런 '에서' 너무 긴 파이썬 코드를 물어보세요?
Back when I 는 파이썬, 한 줄로 길게 대한 거부감이 있는 보았다 먹어서나 2D matrix 와 I am not 의 파이썬 다시 2d 호환표에 사용하려는 스스로에게 말했다. (이러한 단일선 우린사이가 무서운 및 It didn& # 39 는 파이썬, 제게 어떤 일을 대한 정보가 전혀 없다. 또한 이러한 대표 나는 본 적이 없습니다.)
어쨌든 here& # 39 의 coming from 캜, CPP 및 Java 코드를 초보자 그 배경
연인 · 파이썬 참고 있다. 제발 투표 안 해서 내가 작성했습니까 다운되어도 세부 코드입니다.
매트릭스 선언하려면 제로 (수준들과):
numpy.zeros((x, y))
예:
>>> numpy.zeros((3, 5))
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
또는 누마피리오네스 (x, y)) 예:
>>> np.ones((3, 5))
array([[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.]])
삼 치수에는 가능하다. (http://www.astro.ufl.edu/ ~ warner/prog/python.html 지켜보리니 > -; 다차원 배열)
# 2D array/ matrix
# 5 rows, 5 cols
rows_count = 5
cols_count = 5
# create
# creation looks reverse
# create an array of "cols_count" cols, for each of the "rows_count" rows
# all elements are initialized to 0
two_d_array = [[0 for j in range(cols_count)] for i in range(rows_count)]
# index is from 0 to 4
# for both rows & cols
# since 5 rows, 5 cols
# use
two_d_array[0][0] = 1
print two_d_array[0][0] # prints 1 # 1st row, 1st col (top-left element of matrix)
two_d_array[1][0] = 2
print two_d_array[1][0] # prints 2 # 2nd row, 1st col
two_d_array[1][4] = 3
print two_d_array[1][4] # prints 3 # 2nd row, last col
two_d_array[4][4] = 4
print two_d_array[4][4] # prints 4 # last row, last col (right, bottom element of matrix)
# Creates a 2 x 5 matrix
Matrix = [[0 for y in xrange(5)] for x in xrange(2)]
도왔으매
Matrix[1][4] = 2 # Valid
Matrix[4][1] = 3 # IndexError: list index out of range
누마피 사용하여 다음과 같은 빈 호환표에 초기화하지 수 있습니다.
import numpy as np
mm = np.matrix([])
이상 데이터 추가 다음과 같습니다.
mm = np.append(mm, [[1,2]], axis=1)
만약 원하는걸까요 되지 않고 있는 것 같아 어쩔 수 없이 이를 수 있다고 생각한다 2D 어레이입니다 목록을 기간 열거합니다 (훨씬 더 자연스러운 내 의견으로는) 다음과 같이 할 수 있습니다.
import numpy
Nx=3; Ny=4
my2Dlist= numpy.zeros((Nx,Ny)).tolist()
결과적으로 목록 (누마피 어레이입니다 아닌), 숫자, 문자열, 그러든지요 개별 덮어씁니다 포지셔닝합니다 수 있다는 것입니다.
사용:
import copy
def ndlist(*args, init=0):
dp = init
for x in reversed(args):
dp = [copy.deepcopy(dp) for _ in range(x)]
return dp
l = ndlist(1,2,3,4) # 4 dimensional list initialized with 0's
l[0][1][2][3] = 1
나는한다 누마피 갈 길이라고 생각합니다. # 39 는 1 위, 누마피 사용할 경우 일반 don& 싶지 않다.
"' 목록 1: 저장하였습니다 행뿐만 목록 2: 실제 이차원 호환표에 "'
제 1 행 전체를 작성하든지 목록. 설치가 끝나면 덮어쓰기/추가 목록 1 에 목록 2:
from random import randint
coordinates=[]
temp=[]
points=int(raw_input("Enter No Of Coordinates >"))
for i in range(0,points):
randomx=randint(0,1000)
randomy=randint(0,1000)
temp=[]
temp.append(randomx)
temp.append(randomy)
coordinates.append(temp)
print coordinates
출력:
Enter No Of Coordinates >4
[[522, 96], [378, 276], [349, 741], [238, 439]]