python,对n*m的2维数组arr进行归一化,然后取其中的第0和第i行,构建新的m*m的二维数组
时间: 2024-03-28 08:42:20 浏览: 62
你可以使用NumPy库中的函数来完成这个任务。以下是一个示例代码:
import numpy as np
# 构造一个2维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 对数组进行归一化
arr_norm = (arr - arr.min()) / (arr.max() - arr.min())
# 取第0和第i行,并构建新的2维数组
i = 2
new_arr = np.array([arr_norm[0], arr_norm[i]])
# 将新的2维数组转换为m*m的形式
m = len(new_arr[0])
new_arr_2 = np.zeros((m, m))
new_arr_2[0] = new_arr[0]
new_arr_2[1] = new_arr[1]
print(new_arr_2)
在这个示例中,我们首先构造了一个2维数组arr
,然后使用归一化公式将其归一化为arr_norm
。接着,我们使用索引操作符[]
来获取第0和第i行,将它们组合成一个新的2维数组new_arr
。最后,我们创建一个m*m的全0矩阵new_arr_2
,并将新的2维数组new_arr
中的值复制到其中的第0和第1行。最终,我们打印出new_arr_2
的值。
需要注意的是,在使用本代码时,你需要将i
替换为你想要获取的行的索引,以及将矩阵的大小m
替换为你需要的大小。
相关问题
python,对nm的2维数组arr进行归一化,然后取其中的第0和第i行,相乘得到m*m的二维数组
你可以使用NumPy库中的函数来完成这个任务。以下是一个示例代码:
import numpy as np
# 构造一个2维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 对数组进行归一化
arr_norm = (arr - arr.min()) / (arr.max() - arr.min())
# 取第0和第i行,并构建新的2维数组
i = 2
new_arr = np.array([arr_norm[0], arr_norm[i]])
# 相乘得到m*m的二维数组
new_arr_2 = np.dot(new_arr.T, new_arr)
print(new_arr_2)
在这个示例中,我们首先构造了一个2维数组arr
,然后使用归一化公式将其归一化为arr_norm
。接着,我们使用索引操作符[]
来获取第0和第i行,将它们组合成一个新的2维数组new_arr
。最后,我们使用NumPy的dot函数计算new_arr
的转置矩阵与自身的乘积,得到一个m*m的矩阵new_arr_2
。最终,我们打印出new_arr_2
的值。
需要注意的是,在使用本代码时,你需要将i
替换为你想要获取的行的索引。如果你需要改变矩阵的大小,可以使用NumPy库中的reshape方法进行操作。
python,对2维数组arr进行归一化,然后取其中的第0和第i行,构建新的二维数组
你可以使用NumPy库中的函数来完成这个任务。以下是一个示例代码:
import numpy as np
# 构造一个2维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 对数组进行归一化
arr_norm = (arr - arr.min()) / (arr.max() - arr.min())
# 取第0和第i行,构建新的二维数组
i = 2
new_arr = np.array([arr_norm[0], arr_norm[i]])
print(new_arr)
在这个示例中,我们首先构造了一个2维数组arr
,然后使用归一化公式将其归一化为arr_norm
。接着,我们使用索引操作符[]
来获取第0和第i行,将它们组合成一个新的2维数组new_arr
。最后,我们打印出new_arr
的值。
需要注意的是,在使用本代码时,你需要将i
替换为你想要获取的行的索引。