는 2 차원 배열이며,뿐만 아니라 즉, 은 아마 이미 NumPy와 배열입니다 그 이후 할 수 있습니다 통해하지 인덱스 일반 파이썬 배열 [: (튜플)]
는이 다섯 줄
x=dataset[:,0]
y=dataset[:,1]
z_nodatum=dataset[:,2]
stage=dataset[:,17]
amp=dataset[:,5]
실제로 dataset
에 지정된 컬럼에 해당 나타납니다, 주어진. x
, y
, z_notatum
, stage
및 amp
은 이미 1xN 배열입니다.
을 감안할 때이, 선 :
x=np.array(x)
y=np.array(y)
가 수행 아무것도, x와 y는 이미 NumPy와 배열입니다. z=-(z_nodatum-2919)
은 모든 요소에서 2919를 뺀 후 결과를 무효화하고 실제로 결과가 좋았 으면 결과가되는 배열을 반환합니다. 그러나 다시 z=np.array(z)
은 아무 것도하지 않습니다. 처음에는 이미 배열 수가 적습니다.
이 다음 줄은 내가하고 싶지 않을 수도 있습니다. 이 무엇
A = np.column_stack(([x],[y]))
그것이 1xN 배열 x
및 y
의 배열을하고, 열은, 그 스택 [[x1, x2... xn, y1, y2...yn]]
되는 끝있다. 당신이 아마 원한했다 : 열 x
및 y
[[x1,y1],[x2, y2]...[xn,yn]]
의 2D NumPy와 배열을 반환
A = np.column_stack((x,y))
. 이 경우 모든 사용자가 X와 함께 할 거라고 당신이 처음에이 작업을 수행 한 수 Y 있습니다 :
가 바로 옆에 있다면 이것은 당신이 첫번째 장소에 함께 x와 y를 준 것
A = dataset[:,:2]
dataset
서로 (0 소요 -> N-1 열, 여기서 n 여기에 2)
귀하의 회전 행렬은 유효 나타나지만 참고, 당신은 아마 통해 그것을 만든해야
theta = np.radians(20)
cos_theta,sine_theta =np.cos(theta), np.sin(theta)
R = np.matrix([[cos_theta, -sine_theta], [sine_theta, cos_theta]])
당신만을 더 편리한 경우 문자열 형식 버전을 사용하십시오 (예 : tex 읽기 t 다른 곳에서) 또는 당신은 그것을 필요로하는 복잡한 구조를 가지고 있습니다. 여기서는 그렇지 않습니다.버전에서
B=A*R
당신은에 대한 1x1xN 순이익 배열을 가지고 있고, 분명히 R.이을위한 2 × 2 작동하지 않을 수 있습니다.
내가 제안한 수정 된 내용으로 내부 크기가 일치하므로 유효한 행 x 열 Nx2 * 2x2 연산을 얻을 수 있습니다. x
과 y
을 B
에서 꺼내려면 처음에 수행했던 작업을 수행 할 수 있습니다.이 시점에서 B
은 이제 Nx2 numpy 배열입니다 (A * B = C, C 크기는 A.rows X B.cols입니다. , 외부 크기 값) :
x_rotated = B[:,0]
y_rotated = B[:,1]
이제 모든 것이 작동합니다. numpy에서 행렬 곱셈에주의하십시오. 값 중 하나 이상이 행렬인지 확인하십시오. 그렇지 않으면 요소 현명한 곱셈을 수행합니다 (R
은 행렬입니다). 또한 연산 순서에 따라 방정식의 두 배열 (예 : 배열 * 배열 * 행렬)이 행렬 연산 전에 요소 현자 곱셈을 수행 할 수 있습니다.