2016-11-13 2 views
0

두 개의 다른 결과가 나타나는 이유가 궁금합니다. 그들은 같지 않아야합니까?파이썬 numpy 행렬 할당 값

import numpy as np 

    x = np.array([[1.5, 2], [2.4, 6]]) 

    k = np.copy(x) 
    for i in range(len(x)): 
     for j in range(len(x[i])): 
      k[i][j] = 1/(1 + np.exp(-x[i][j])) 
      print("K[i][j]:"+str(k[i][j])) 
      print("Value:"+str(1/(1 + np.exp(-x[i][j])))) 

답변

0

저는 python3과 python2로 코드를 실행했으며 그 결과는 완전히 동일했습니다. 또한 numpy 배열을 사용할 때 루핑을 할 필요가 없으므로 많은 종류의 데이터 처리 작업을 루프 작성이 필요할 수도있는 간결한 배열 식으로 표현할 수 있습니다. 명시적인 루프를 배열 표현식으로 바꾸는이 연습은 일반적으로 벡터화라고합니다. 일반적으로 벡터화 된 배열 연산은 순수한 파이썬 연산보다 1 ~ 2 배 빠르게 수행되며 모든 종류의 수치 연산에 가장 큰 영향을 미칩니다.

그래서, 당신은 당신의 코드를 다시 작성할 수 있다는 점에서이 모든 것을 유지 다음 같이

import numpy as np 

x = np.array([[1.5, 2], [2.4, 6]], dtype=np.float) 
k = 1/(1 + np.exp(-x)) 
0

이 스크립트를 실행하면 2 장이 동일한 결과를 보여줍니다. 이 python은 3.5.2입니다.

K[i][j]:0.817574476194 
Value:0.817574476194 
K[i][j]:0.880797077978 
Value:0.880797077978 
K[i][j]:0.916827303506 
Value:0.916827303506 
K[i][j]:0.997527376843 
Value:0.997527376843