np.newaxis使用方式
X = diabetes.data[:, np.newaxis,2]
想請問一下,為何要加.data才跑得出來。然後diabetes.data.shape
顯示它是一個(442,10)的資料,那感覺diabetes.data[:,2]就可以取了,但似乎是沒辦法
那為何還要加np.newaxis才能取。
還是說diabetes.data本身其實是一維,[:, np.newaxis,2]相當就是2維的[:,2]?
回答列表
-
2020/04/09 下午 10:53張維元 (WeiYuan)贊同數:0不贊同數:0留言數:1
-
2020/04/09 下午 11:00張維元 (WeiYuan)贊同數:0不贊同數:0留言數:4
嗨,柏勳
1. 然後diabetes.data.shape 顯示它是一個(442,10)的資料,那感覺diabetes.data[:,2]就可以取了,但似乎是沒辦法那為何還要加np.newaxis才能取。
=> 我們把 data 印出來長這樣:
如果只取 [:, 2] 的話,會印出第二個維度:
但這裡想要的是「只包含第二個維度的 Array 所組成的 Array」,如下:
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/04/12 上午 02:12張維元 (WeiYuan)贊同數:1不贊同數:0留言數:1
補充一下 np.newaxis 的用法:
假如我們現在有一個 1 * 3 的 Array 長這樣:
```
[0 1 2]
```
np.newaxi 是增加一個為 1 的維度,例如:
```
np.arange(0,3)[:, np.newaxis]
# array([[0],
# [1],
# [2]])
```
這樣寫會把原本的 Array 變成是 n*1
```
np.arange(0, 3)[np.newaxis, :]
# array([[0, 1, 2]])
```
這樣寫會把原本的 Array 變成是 1*n
```
np.arange(0,3)[:, np.newaxis, np.newaxis]
# array([[[0]],
# [[1]],
# [[2]]])
```
這樣寫會把原本的 Array 變成是 n*1*1
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃