여러 행렬을 곱한다면 단위행렬을 행렬 곱셈 체인의 초깃값으로 사용하자.
내장 함수인 range() 외에도 numpy는 일정한 간격으로 배열된 배열을 만드는 더 효율적인 arange(start, stop, step, dtype=None) 함수를 제공한다.
np_numbers = np.arange(2, 5, 0.25)
np_numbers
>>>
array([2. , 2.25, 2.5, 2.75, 3. , 3.25, 3.5, 3.75, 4. ,
4.25, 4.5 , 4.75])
range() 함수와 마찬가지로 stop 값은 start보다 작을 수 있다. 하지만 이때 step은 반드시 음수여야 하며, 그 결과로 만든 배열 안의 숫자는 뒤로 갈수록 감소한다.
numpy는 배열을 만드는 시점에 아이템의 타입을 기록하지만, 타입은 변형 가능하다. astype(dtype, casting="unsafe", copy=True) 함수를 사용하면 나중에 데이터 타입을 변형할 수 있다. 하지만 타입 유형을 변형하는 과정에서 일부 정보가 유실될 수도 있는데, 이는 numpy에만 해당하는 것이 아니라 타입을 변형하는 모든 경우에 해당된다.
np_inumbers = np_numbers.astype(np.int)
np_inumbers
>>>
array([2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4])
* 단위행렬 대각선의 원소가 모두 1이고, 나머지 원소는 모두 0인 정사각 행렬