回答編集履歴
4
言葉の修正
answer
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
## 追記 ※の部分について
|
38
38
|
|
39
|
-
「同じだけど違う」という言葉を使いたくなってしま
|
39
|
+
こういうときに「同じだけど違う」という言葉を使いたくなってしまいますね。(^ ^;
|
40
40
|
|
41
41
|
全く等価なのは、mkgrei様も挙げておられる、
|
42
42
|
|
@@ -47,6 +47,6 @@
|
|
47
47
|
しかし、クラスメソッドである`np.argsort()`自体は**`numpy.ndarray`オブジェクト以外の配列**も引数に取ることができます。それが唯一の違いです。
|
48
48
|
|
49
49
|
```python
|
50
|
-
print(np.argsort([6,1,5,2,4,3])) # => [1 3 5 4 2 0] このように普通のリストも
|
50
|
+
print(np.argsort([6,1,5,2,4,3])) # => [1 3 5 4 2 0] このように普通のリストも引数にとれる
|
51
51
|
[6,1,5,2,4,3].argsort() # => AttributeError
|
52
52
|
```
|
3
追記
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
`np.argsort(arr)`もできますし、`arr.sort()`もできますよ。
|
2
2
|
|
3
|
-
`argsort`の方はどちらの書き方でも処理に違いはないみたいですが~~(厳密な部分は違うのだろうか?)~~※、`sort`の方には違いがあります。
|
3
|
+
`argsort`の方はどちらの書き方でも処理に違いはないみたいですが~~(厳密な部分は違うのだろうか?)~~※、`sort`の方には違いがあります。
|
4
4
|
|
5
5
|
- `np.sort(arr)` -> **返り値が**並べ替えられた新しいオブジェクトになる。元の配列には変化なし。
|
6
6
|
- `arr.sort()` -> **配列そのものの中身**を並べ換える。返り値は**`None`**
|
@@ -32,4 +32,21 @@
|
|
32
32
|
|
33
33
|
arr_a.sort() :
|
34
34
|
arr_a : [1 2 3 4 5 6]
|
35
|
+
```
|
36
|
+
|
37
|
+
## 追記 ※の部分について
|
38
|
+
|
39
|
+
「同じだけど違う」という言葉を使いたくなってしまう関数ですね。(^ ^;
|
40
|
+
|
41
|
+
全く等価なのは、mkgrei様も挙げておられる、
|
42
|
+
|
43
|
+
`arr.argsort()`と`np.argsort(arr)`
|
44
|
+
|
45
|
+
ですね。これらは全く同じです。というか`arr.argsort()`が内部的には`np.argsort(arr)`になる、と言った方がいいのでしょうか?
|
46
|
+
|
47
|
+
しかし、クラスメソッドである`np.argsort()`自体は**`numpy.ndarray`オブジェクト以外の配列**も引数に取ることができます。それが唯一の違いです。
|
48
|
+
|
49
|
+
```python
|
50
|
+
print(np.argsort([6,1,5,2,4,3])) # => [1 3 5 4 2 0] このように普通のリストも配列にとれる
|
51
|
+
[6,1,5,2,4,3].argsort() # => AttributeError
|
35
52
|
```
|
2
一部訂正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
`np.argsort(arr)`もできますし、`arr.sort()`もできますよ。
|
2
2
|
|
3
|
-
`argsort`の方はどちらの書き方でも処理に違いはないみたいですが(厳密な部分は違うのだろうか?)、`sort`の方には違いがあります。
|
3
|
+
`argsort`の方はどちらの書き方でも処理に違いはないみたいですが~~(厳密な部分は違うのだろうか?)~~※、`sort`の方には違いがあります。(※: 全く同じであることをドキュメントで確認しました。)
|
4
4
|
|
5
5
|
- `np.sort(arr)` -> **返り値が**並べ替えられた新しいオブジェクトになる。元の配列には変化なし。
|
6
6
|
- `arr.sort()` -> **配列そのものの中身**を並べ換える。返り値は**`None`**
|
1
ちょこっと編集
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
`argsort`の方はどちらの書き方でも処理に違いはないみたいですが(厳密な部分は違うのだろうか?)、`sort`の方には違いがあります。
|
4
4
|
|
5
5
|
- `np.sort(arr)` -> **返り値が**並べ替えられた新しいオブジェクトになる。元の配列には変化なし。
|
6
|
-
- `arr.sort` -> **配列そのものの中身**を並べ換える。返り値は**`None`**
|
6
|
+
- `arr.sort()` -> **配列そのものの中身**を並べ換える。返り値は**`None`**
|
7
7
|
|
8
8
|
以下違いを示すコードです。
|
9
9
|
|