[英]Subtracting first element of each row in a 2D array
我正在使用 Python。 我有一個數組(如下)
array([[20.28466797, 19.24307251, 20.87997437, ..., 20.38343811,
19.70025635, 20.22036743],
[ 4.21954346, 17.05456543, 10.09838867, ..., 19.50102234,
19.62188721, 18.30804443],
[14.44546509, 19.43798828, 19.45491028, ..., 22.08952332,
17.83691406, 17.86752319])
我正在尋找編寫一個代碼,該代碼將獲取每行的第一個元素,並從中減去該行中的每個值。
例如,第 1 行:20.28466797 - 20.28466797、19.24307251- 20.28466797、20.87997437 - 20.28466797 等第 2 行:4.4154,3544.3544.3544.3544.3544.34544
您可以使用numpy.tile重復每行的第一個元素以創建矩陣並將其從原始矩陣中減去。
your_matrix - np.tile(your_matrix[:,:1], your_matrix.shape[0])
以下內容將為您完成這項工作:
import numpy as np
def array_fun(arr):
# compute the length of the given array
n = len(arr)
m = len(arr[0])
# create an empty list
aList = []
# append by substracting the first element
[aList.append(arr[i][j]-arr[i][0]) for i in range(n) for j in range(m)]
# return modified array
return np.array(aList).reshape(n,m)
if __name__ == "__main__":
# define your array
arr = [[1, 3, 7], [1, 1, 2], [5, 2, 2]]
# print initial array
print(np.array(arr))
# print modified array
print(np.array(array_fun(arr)))
初始數組:
[[1 3 7]
[1 1 2]
[5 2 2]]
最終數組:
[[ 0 2 6]
[ 0 0 1]
[ 0 -3 -3]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.