簡體   English   中英

如何用零替換數組中的值?

[英]How to replace values in array with zeros?

我有一個帶有嵌套列表的數組:

A = np.array([[45.,  0.,  0.],
       [ 0., 27.,  0.],
       [ 0.,  0., 18.]])

我想用零替換最后一個列表 [0., 0., 18.] 中的所有值作為新值 A_1:

A_1 = np.array([[45.,  0.,  0.],
       [ 0., 27.,  0.],
       [ 0.,  0., 0.]])

我怎么能這樣做?

import numpy as np
A = np.array([[45.,  0.,  0.],
       [ 0., 27.,  0.],
       [ 0.,  0., 18.]])

A_1 = A.copy()
A_1[-1]=0

Output

array([[45.,  0.,  0.],
       [ 0., 27.,  0.],
       [ 0.,  0.,  0.]])

首先,您需要復制A 我可以從三個方面思考:

  1. A_1 = A[:]
  2. A_1 = A.copy()
  3. A_1 = np.copy(A)

然后你必須替換最后一個數組:

A_1[-1] = 0

另一種方法是使用numpy.copyto 在這種情況下,您必須將A_1初始化為一個完整的 0s numpy.ndarray然后復制您想要的部分:

A_1 = np.zeros(A.shape)
np.copyto(A_1[:2], A[:2])

或等效地

np.copyto(A_1[:-1], A[:-1])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM