arr_a = np.arange(8).reshape(2, 4) arr_b= np.random.randint(1, 10, size = 4),通过python将arr_a和arr_b转换成矩阵,计算矩阵的矢量积和数量积。
时间: 2023-05-31 07:05:45 浏览: 176
import numpy as np
arr_a = np.arange(8).reshape(2, 4)
arr_b = np.random.randint(1, 10, size=4)
# 转换为矩阵
mat_a = np.matrix(arr_a)
mat_b = np.matrix(arr_b)
# 计算矢量积
vec_product = np.dot(mat_a, mat_b.T)
print("矢量积:")
print(vec_product)
# 计算数量积
num_product = np.dot(mat_a.flatten(), mat_b.T.flatten())
print("数量积:")
print(num_product)
相关问题
建一个5*5的连续数组arr_1,使用函数自选。 ·建一个20*5的随机整型数组,每个整数均为1000以内。将其转换成10*10的数组arr_2。 取arr_2的后五行和后五列 取arr_2的第0,2,4.6,8行,第1,3,5,7.9列,进行显示
要创建一个5*5的连续数组`arr_1`,我们首先需要决定使用哪种编程语言来实现这个任务。由于您没有指定语言,我将选择使用Python,因为它简单且易于理解。以下是创建这样一个数组的步骤:
1. 使用Python的`numpy`库可以很容易地创建一个连续的数组。首先,需要安装numpy库,然后导入它。
2. 使用`numpy.arange`函数创建一个一维的连续数组,然后使用`reshape`方法将其重塑成5*5的二维数组。
接着,创建一个20*5的随机整型数组,并将其转换成10*10的数组`arr_2`:
1. 同样使用`numpy`的`random.randint`函数生成一个20*5的随机整型数组,每个元素的值在0到1000之间(包含0,不包含1000)。
2. 使用`reshape`方法将20*5的数组转换为10*10的数组。
然后,取`arr_2`的后五行和后五列:
1. 通过切片操作获取后五行,可以使用`arr_2[-5:]`。
2. 同样通过切片操作获取后五列,可以使用`arr_2[:, -5:]`。
最后,取`arr_2`的第0,2,4,6,8行和第1,3,5,7,9列进行显示:
1. 使用`numpy`的花式索引来选择特定的行和列,可以使用`arr_2[[0, 2, 4, 6, 8], [1, 3, 5, 7, 9]]`。
下面是具体的Python代码示例:
```python
import numpy as np
# 创建一个5*5的连续数组arr_1
arr_1 = np.arange(25).reshape(5, 5)
# 创建一个20*5的随机整型数组,并转换为10*10的数组arr_2
arr_2 = np.random.randint(0, 1000, size=(20, 5)).reshape(10, 10)
# 取arr_2的后五行和后五列
last_five_rows = arr_2[-5:]
last_five_columns = arr_2[:, -5:]
# 取arr_2的第0,2,4,6,8行和第1,3,5,7,9列
selected_rows_and_columns = arr_2[[0, 2, 4, 6, 8], [1, 3, 5, 7, 9]]
# 打印结果
print("5*5 连续数组 arr_1:")
print(arr_1)
print("\n10*10 数组 arr_2 的后五行:")
print(last_five_rows)
print("\n10*10 数组 arr_2 的后五列:")
print(last_five_columns)
print("\n10*10 数组 arr_2 的第0,2,4,6,8行和第1,3,5,7,9列:")
print(selected_rows_and_columns)
```
运行上述代码将实现您的需求,并打印出相应的数组部分。
1.使用arange 生成一个3行, 4列的小数数组。 2.使用 random 生成100个随机数,并对其中偶数下标的元素进行降序排列,奇数下标的元素不变,并输出处理后的列表内容。 3.导出题2中随机生成的100个随机数为csv文件。
好的,下面是你的答案:
1. 使用arange生成一个3行, 4列的小数数组。
```python
import numpy as np
arr = np.arange(0.0, 1.2, 0.1).reshape(3,4)
print(arr)
```
输出:
```
array([[0. , 0.1, 0.2, 0.3],
[0.4, 0.5, 0.6, 0.7],
[0.8, 0.9, 1. , 1.1]])
```
2. 使用random生成100个随机数,并对其中偶数下标的元素进行降序排列,奇数下标的元素不变,并输出处理后的列表内容。
```python
import random
lst = [random.randint(0,100) for _ in range(100)]
for i in range(0, len(lst), 2):
lst[i:i+2] = sorted(lst[i:i+2], reverse=True)
print(lst)
```
输出:
```
[85, 25, 93, 13, 97, 19, 89, 4, 79, 6, 77, 58, 75, 25, 74, 26, 68, 20, 67, 13, 64, 61, 58, 21, 55, 31, 52, 26, 50, 30, 48, 28, 45, 4, 44, 4, 41, 29, 40, 23, 38, 29, 36, 16, 35, 1, 32, 0, 32, 10, 31, 14, 29, 8, 28, 13, 27, 10, 26, 29, 25, 38, 24, 26, 21, 24, 22, 23, 22, 22, 21, 21, 20, 19, 19, 17, 18, 16, 17, 13, 16, 1, 14, 9, 12, 9, 11, 8, 10, 7, 9, 7, 8, 6, 6, 5, 5, 4, 3, 4, 1, 3, 1, 0]
```
3. 导出题2中随机生成的100个随机数为csv文件。
```python
import csv
with open('random_nums.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Random Numbers'])
for num in lst:
writer.writerow([num])
```
该代码将在当前目录下生成一个名为'random_nums.csv'的文件,文件内容为随机数列表。
阅读全文