別の配列に基づいて列の値を変更します

旧魔王

2つのアレイがあります。

b = np.array([[-2,1,1],[-99,1,0],[-12,0,1],[-100,0,0]])
z = np.array([[0,0,0],[0,1,1],[2,1,0],[-1,0,1]])

print(b)

[[  -2    1    1]
 [ -99    1    0]
 [ -12    0    1]
 [-100    0    0]]

print(z) 

[[ 0  0  0]
 [ 0  1  1]
 [ 2  1  0]
 [-1  0  1]]

私が変更したいの[-2, -99, -12, -100]は、最初の配列(bの最初の列()の値ですより具体的には、これらは、別の配列の(zと同じ2番目と3番目の列に基づいて変更する必要があります

例えば、最初の行b[ -2 1 1])は、(に変更されることになる[ 0 1 1]第二(ため)1)と第3の値(1)最初の行の2列目と同じですz[0 1 1])。ただし、行の順序はで維持したいと思いzます。したがって、

# b
[[  -2    1    1]
 [ -99    1    0]
 [ -12    0    1]
 [-100    0    0]]

# would be .. 
[[ 0  1  1]
 [ 2  1  0]
 [ -1  0  1]
 [ 0  0  0]]

ループを使用することは避けられないようですが、Numpyスタイルのトリックで実装する方法は他にもあると思います

Adam.Er8

あなたが使用することができnp.lexsort、両方の間接的なソート(「ソートインデックス」とわずか1-D配列)を取得するbと、z2列目と3列目に一致するようにして、正確にそれぞれの行の最初の列を割り当てるには、高度な割り当てを使用します。

これを試して:

import numpy as np

b = np.array([[-2, 1, 1], [-99, 1, 0], [-12, 0, 1], [-100, 0, 0]])
z = np.array([[0, 0, 0], [0, 1, 1], [2, 1, 0], [-1, 0, 1]])

b_argsorted = np.lexsort((b[:, 1], b[:, 2]))
z_argsorted = np.lexsort((z[:, 1], z[:, 2]))

b[b_argsorted, 0] = z[z_argsorted, 0]

print(b)

出力(あなたのものと同じ):

[[ 0  1  1]
 [ 2  1  0]
 [-1  0  1]
 [ 0  0  0]]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python Dataframe:別の列に基づいて列の値を変更しますか?

分類Dev

pandas-別の列に基づいて列の値を変更します

分類Dev

2番目の配列の列の値に基づいて、1つの配列の値を変更します

分類Dev

別の配列の値に基づいてブール行列の要素をTrueに変更します

分類Dev

別の列値に基づいて列値を変更する

分類Dev

別の列に基づいて列の値を変更する

分類Dev

PHPの別の列の値に基づいて配列列を取得します

分類Dev

以前の値に基づいてnumpy配列を変更します

分類Dev

値の変更に基づいて配列キーを更新します

分類Dev

別の列の変更に基づいて、ある列の値を変更します

分類Dev

ループ内の別の列の値に基づいて、列の値をnanに変更します

分類Dev

別の配列の値に基づいてnumpy配列を展開します

分類Dev

1つの列の値に基づいて、グループ全体で別の列の値を変更します

分類Dev

Pandas groupby:別の列の値に基づいて1つの列の値を変更します

分類Dev

条件に基づいて、データフレーム列の値を別の列の値に変更します

分類Dev

別の条件に基づいて列の値を変更する

分類Dev

Mysql:列の以前の値に基づいて列の値を変更します

分類Dev

パンダ:別の列の条件に基づいて、列の前のセル値を変更します

分類Dev

javascriptの別の配列に基づいてオブジェクトの配列の値を変更する

分類Dev

別の列に基づいて列の値を変更するトリガーを設定します

分類Dev

別の配列の情報に基づいて配列の値をtrueとfalseに変更する方法

分類Dev

別の列の因子レベルに基づいて、ある列の数値を変更します

分類Dev

別の配列に基づいて配列の順序を変更する

分類Dev

dplyrを使用して、DataFrameの別の列に基づいて行の値を変更します

分類Dev

別の列の値に基づいて集計関数内の値を変更しますか?

分類Dev

配列の長さに基づいて文字列を変更します

分類Dev

パンダはブール配列に基づいて列の値を適切に変更します

分類Dev

別の列の別の行に基づいて行の値を変更する

分類Dev

別の列の以前の値に基づいて列を変更する

Related 関連記事

  1. 1

    Python Dataframe:別の列に基づいて列の値を変更しますか?

  2. 2

    pandas-別の列に基づいて列の値を変更します

  3. 3

    2番目の配列の列の値に基づいて、1つの配列の値を変更します

  4. 4

    別の配列の値に基づいてブール行列の要素をTrueに変更します

  5. 5

    別の列値に基づいて列値を変更する

  6. 6

    別の列に基づいて列の値を変更する

  7. 7

    PHPの別の列の値に基づいて配列列を取得します

  8. 8

    以前の値に基づいてnumpy配列を変更します

  9. 9

    値の変更に基づいて配列キーを更新します

  10. 10

    別の列の変更に基づいて、ある列の値を変更します

  11. 11

    ループ内の別の列の値に基づいて、列の値をnanに変更します

  12. 12

    別の配列の値に基づいてnumpy配列を展開します

  13. 13

    1つの列の値に基づいて、グループ全体で別の列の値を変更します

  14. 14

    Pandas groupby:別の列の値に基づいて1つの列の値を変更します

  15. 15

    条件に基づいて、データフレーム列の値を別の列の値に変更します

  16. 16

    別の条件に基づいて列の値を変更する

  17. 17

    Mysql:列の以前の値に基づいて列の値を変更します

  18. 18

    パンダ:別の列の条件に基づいて、列の前のセル値を変更します

  19. 19

    javascriptの別の配列に基づいてオブジェクトの配列の値を変更する

  20. 20

    別の列に基づいて列の値を変更するトリガーを設定します

  21. 21

    別の配列の情報に基づいて配列の値をtrueとfalseに変更する方法

  22. 22

    別の列の因子レベルに基づいて、ある列の数値を変更します

  23. 23

    別の配列に基づいて配列の順序を変更する

  24. 24

    dplyrを使用して、DataFrameの別の列に基づいて行の値を変更します

  25. 25

    別の列の値に基づいて集計関数内の値を変更しますか?

  26. 26

    配列の長さに基づいて文字列を変更します

  27. 27

    パンダはブール配列に基づいて列の値を適切に変更します

  28. 28

    別の列の別の行に基づいて行の値を変更する

  29. 29

    別の列の以前の値に基づいて列を変更する

ホットタグ

アーカイブ