vault backup: 2023-12-14 16:25:50
This commit is contained in:
16
.obsidian/workspace.json
vendored
16
.obsidian/workspace.json
vendored
@@ -41,7 +41,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "01. 個人/01. Daily/2023-12-14(週四).md",
|
"file": "00. Inbox/numpy axis 運算.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": true
|
"source": true
|
||||||
}
|
}
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "search",
|
"type": "search",
|
||||||
"state": {
|
"state": {
|
||||||
"query": "fft",
|
"query": "numpy",
|
||||||
"matchingCase": false,
|
"matchingCase": false,
|
||||||
"explainSearch": false,
|
"explainSearch": false,
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "backlink",
|
"type": "backlink",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "01. 個人/01. Daily/2023-12-14(週四).md",
|
"file": "00. Inbox/numpy axis 運算.md",
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
"extraContext": false,
|
"extraContext": false,
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "01. 個人/01. Daily/2023-12-14(週四).md"
|
"file": "00. Inbox/numpy axis 運算.md"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -167,12 +167,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "file-properties",
|
"type": "file-properties",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "01. 個人/01. Daily/2023-12-14(週四).md"
|
"file": "00. Inbox/numpy axis 運算.md"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"currentTab": 4
|
"currentTab": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "ae4bf98badbfc7ee",
|
"id": "ae4bf98badbfc7ee",
|
||||||
@@ -212,8 +212,9 @@
|
|||||||
},
|
},
|
||||||
"active": "86a0c6a7825eb439",
|
"active": "86a0c6a7825eb439",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"01. 個人/01. Daily/2023-12-13(週三).md",
|
|
||||||
"01. 個人/01. Daily/2023-12-14(週四).md",
|
"01. 個人/01. Daily/2023-12-14(週四).md",
|
||||||
|
"00. Inbox/numpy axis 運算.md",
|
||||||
|
"01. 個人/01. Daily/2023-12-13(週三).md",
|
||||||
"01. 個人/01. Daily/2023-12-12(週二).md",
|
"01. 個人/01. Daily/2023-12-12(週二).md",
|
||||||
"01. 個人/01. Daily/2023/2023年度目標.md",
|
"01. 個人/01. Daily/2023/2023年度目標.md",
|
||||||
"00. Inbox/EFT 配息時間.md",
|
"00. Inbox/EFT 配息時間.md",
|
||||||
@@ -243,7 +244,6 @@
|
|||||||
"01. 個人/01. Daily/2023/11/2023-11-29(週三).md",
|
"01. 個人/01. Daily/2023/11/2023-11-29(週三).md",
|
||||||
"01. 個人/01. Daily/2023/11/2023-11-26(週日).md",
|
"01. 個人/01. Daily/2023/11/2023-11-26(週日).md",
|
||||||
"03. 專注Study/C++/chrono.md",
|
"03. 專注Study/C++/chrono.md",
|
||||||
"00. Inbox/01. TODO.md",
|
|
||||||
"01. 個人/01. Daily/2023/10",
|
"01. 個人/01. Daily/2023/10",
|
||||||
"00. Inbox/vc-fwUpdate code trace(Meetup).canvas",
|
"00. Inbox/vc-fwUpdate code trace(Meetup).canvas",
|
||||||
"01. 個人/01. Daily/2023/09",
|
"01. 個人/01. Daily/2023/09",
|
||||||
|
|||||||
119
00. Inbox/numpy axis 運算.md
Normal file
119
00. Inbox/numpy axis 運算.md
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
numpy有很多運算都可以指定axis,例如`x.sum(axis=0)`或是`x.max(axis=0)`之類。
|
||||||
|
axis在2軸(像是 `[[1, 2], [3, 4]]`) 可以理解成x方向或是y方向。但是在更多軸的情況下就很難這樣理解了。
|
||||||
|
|
||||||
|
我的理解方式是把axis當作「第幾層」。例如`x.sum(axis=0)`就是把「第0層」之下的東西都加起來,例如說有一個array `a`長這樣:
|
||||||
|
```python
|
||||||
|
array([[[1. , 2. , 3. ],
|
||||||
|
[4. , 5. , 6. ],
|
||||||
|
[7. , 8. , 9. ]],
|
||||||
|
|
||||||
|
[[0.1, 0.2, 0.3],
|
||||||
|
[0.4, 0.5, 0.6],
|
||||||
|
[0.7, 0.8, 0.9]]])
|
||||||
|
```
|
||||||
|
|
||||||
|
## axis=0
|
||||||
|
那麼`np.sum(a, axis=0)`就是把「第0層」之下的東西都加起來,`a`的shape是(2, 3, 3),所以第0層之下就是**有2個3x3的array**,也就是
|
||||||
|
```python
|
||||||
|
[[1. , 2. , 3. ],
|
||||||
|
[4. , 5. , 6. ],
|
||||||
|
[7. , 8. , 9. ]]
|
||||||
|
```
|
||||||
|
與
|
||||||
|
```python
|
||||||
|
[[0.1, 0.2, 0.3],
|
||||||
|
[0.4, 0.5, 0.6],
|
||||||
|
[0.7, 0.8, 0.9]]
|
||||||
|
```
|
||||||
|
要加起來也就是:
|
||||||
|
```python
|
||||||
|
np.array([[1. , 2. , 3. ],
|
||||||
|
[4. , 5. , 6. ],
|
||||||
|
[7. , 8. , 9. ]]) +
|
||||||
|
np.array([[0.1, 0.2, 0.3],
|
||||||
|
[0.4, 0.5, 0.6],
|
||||||
|
[0.7, 0.8, 0.9]])
|
||||||
|
```
|
||||||
|
答案跟`np.sum(a, axis=0)`是一樣的。
|
||||||
|
|
||||||
|
## axis=1
|
||||||
|
那麼`np.sum(a, axis=1)`呢?也就是把「第1層」之下的東西都加起來,`a`的shape是(2, 3, 3),所以「第1層」有2個,分別是
|
||||||
|
```python
|
||||||
|
[[1. , 2. , 3. ],
|
||||||
|
[4. , 5. , 6. ],
|
||||||
|
[7. , 8. , 9. ]]
|
||||||
|
```
|
||||||
|
與
|
||||||
|
```python
|
||||||
|
[[0.1, 0.2, 0.3],
|
||||||
|
[0.4, 0.5, 0.6],
|
||||||
|
[0.7, 0.8, 0.9]]
|
||||||
|
```
|
||||||
|
這2個各自會產生各自的結果,先看第一個。我們要把「第1層」之下的東西都加起來,「第1層」之下的東西就是:
|
||||||
|
```python
|
||||||
|
[1. , 2. , 3. ],
|
||||||
|
[4. , 5. , 6. ],
|
||||||
|
[7. , 8. , 9. ]
|
||||||
|
```
|
||||||
|
我要把他們加起來,也就是`[1. , 2. , 3. ] + [4. , 5. , 6. ] + [7. , 8. , 9. ] = [12., 15., 18.]`
|
||||||
|
|
||||||
|
再看第二個,我們要把「第1層」之下的東西都加起來,「第1層」之下的東西就是:
|
||||||
|
```python
|
||||||
|
[0.1, 0.2, 0.3],
|
||||||
|
[0.4, 0.5, 0.6],
|
||||||
|
[0.7, 0.8, 0.9]
|
||||||
|
```
|
||||||
|
我要把他們加起來,也就是`[0.1, 0.2, 0.3] + [0.4, 0.5, 0.6] + [0.7, 0.8, 0.9] = [1.2, 1.5, 1.8]`
|
||||||
|
|
||||||
|
所以`np.sum(a, axis=1)`的答案就是:
|
||||||
|
```python
|
||||||
|
[[12., 15., 18.],
|
||||||
|
[1.2, 1.5, 1.8]]
|
||||||
|
```
|
||||||
|
|
||||||
|
## axis=2
|
||||||
|
那麼`np.sum(a, axis=2)`呢?也就是把「第1層」之下的東西都加起來,`a`的shape是(2, 3, 3),所以「第1層」有2個,分別是
|
||||||
|
```python
|
||||||
|
[[1. , 2. , 3. ],
|
||||||
|
[4. , 5. , 6. ],
|
||||||
|
[7. , 8. , 9. ]]
|
||||||
|
```
|
||||||
|
與
|
||||||
|
```python
|
||||||
|
[[0.1, 0.2, 0.3],
|
||||||
|
[0.4, 0.5, 0.6],
|
||||||
|
[0.7, 0.8, 0.9]]
|
||||||
|
```
|
||||||
|
而這2個第1層又各自有3個的第2層,分別是:
|
||||||
|
```python
|
||||||
|
[
|
||||||
|
[1. , 2. , 3. ] <-- 裡面要加起來
|
||||||
|
[4. , 5. , 6. ] <-- 裡面要加起來
|
||||||
|
[7. , 8. , 9. ] <-- 裡面要加起來
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[0.1, 0.2, 0.3] <-- 裡面要加起來
|
||||||
|
[0.4, 0.5, 0.6] <-- 裡面要加起來
|
||||||
|
[0.7, 0.8, 0.9] <-- 裡面要加起來
|
||||||
|
]
|
||||||
|
```
|
||||||
|
總共有6個,加起來之後就變成:
|
||||||
|
```python
|
||||||
|
[
|
||||||
|
[
|
||||||
|
[1. , 2. , 3. ] = 6
|
||||||
|
[4. , 5. , 6. ] = 15
|
||||||
|
[7. , 8. , 9. ] = 24
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[0.1, 0.2, 0.3] = 0.6
|
||||||
|
[0.4, 0.5, 0.6] = 1.5
|
||||||
|
[0.7, 0.8, 0.9] = 2.4
|
||||||
|
]
|
||||||
|
]
|
||||||
|
```
|
||||||
|
所以`np.sum(a, axis=2)`的答案就是:
|
||||||
|
```python
|
||||||
|
[[ 6. , 15. , 24. ],
|
||||||
|
[ 0.6, 1.5, 2.4]]
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user