2016-06-28 2 views
0

numpy float를 numpy ndarray에 삽입하려고합니다.numpy.float64 요소를 numpy 배열에 삽입하십시오.

및 해당 출력은 다음과 같습니다 : 코드와 출력은

type(dos) 
<class 'numpy.ndarray'> 
dos.shape 
(301, 18) 
dos[15] Before 
[ -9.75080030e-02 -8.37110240e-02 -3.13760517e-03 -2.70089494e-03 
    -2.07915835e-03 -1.77532740e-03 -2.03548911e-03 -1.73346437e-03 
    -1.98000973e-04 -1.64015415e-04 -1.99115166e-04 -1.65569761e-04 
    -9.07381374e-05 -7.37546825e-05 -1.48250176e-04 -1.22108731e-04 
    -1.18854648e-04 -9.70416840e-05] 
type(atom[1,0,0]) 
<class 'numpy.float64'> 
atom[1,0,0] 
-4.11 
dos[15] After 
0.0 
type(dos2) 
<class 'numpy.ndarray'> 

예상 된 결과는 여기서

NumPy와 documentation에서
[ -4.11 -9.75080030e-02 -8.37110240e-02 -3.13760517e-03 -2.70089494e-03 
     -2.07915835e-03 -1.77532740e-03 -2.03548911e-03 -1.73346437e-03 
     -1.98000973e-04 -1.64015415e-04 -1.99115166e-04 -1.65569761e-04 
     -9.07381374e-05 -7.37546825e-05 -1.48250176e-04 -1.22108731e-04 
     -1.18854648e-04 -9.70416840e-05] 

, 내가 어디에서 볼 수 없습니다 나는 잘못했다. 친절히 도와주세요. 했나요 다큐먼트에서

답변

2

:

삽입 값 도착 사본. 삽입은 내부에서 일어나지 않습니다. 즉, 새로운 배열이 반환됩니다. axis가 None이면 out은 병합 된 배열입니다.

for i in range(301): 
    dos2=np.insert(dos, 0, atom[1,0,0]) 

300 쓸모없는 작업을합니까, 다음 단일 값을 삽입하고 dos2dos301*18 값을 더한 값 (평평)이 포함되어 :

이것은 루프는 것을 의미한다

>>> dos = np.random.random((3, 3)) 
>>> dos2 = np.insert(dos, 0, 12) 
>>> dos2 
array([ 12.  , 0.30211688, 0.39685661, 0.89568364, 
     0.14398144, 0.39122099, 0.8017827 , 0.35158563, 
     0.18771122, 0.89938571]) 
>>> dos2[5] 
0.39122099250162556 

각 요소에 해당 값이 발생하는 것이 무엇입니까 in do S : 단순히로 표현 될 수

>>> dos2 = np.empty((dos.shape[0], dos.shape[1] + 1), dtype=dos.dtype) 
>>> for i in range(dos.shape[0]): 
...  dos2[i] = np.insert(dos[i], 0, 12) 
... 
>>> dos2 
array([[ 12.  , 0.30211688, 0.39685661, 0.89568364], 
     [ 12.  , 0.14398144, 0.39122099, 0.8017827 ], 
     [ 12.  , 0.35158563, 0.18771122, 0.89938571]]) 

: 당신은 이미 평면 배열의 시작 부분에 단일 값을 삽입 할처럼 '예상 된 결과'에서

>>> dos2 = np.empty((dos.shape[0], dos.shape[1] + 1), dtype=dos.dtype) 
>>> dos2[:, 0] = 12 
>>> dos2[:, 1:] = dos 
1

가 보인다. 확실히 for 루프를 사용할 필요가 없습니다.

>>> insert_value = 100 
>>> orig_array = np.array([1, 2, 3, 4, 5]) 
>>> final_array = np.insert(orig_array, 0, insert_value) 
>>> print(final_array) 
[100 1 2 3 4 5]