请创建四维数组,并展示索引,分片,求和操作。 定义一个长度为20的数组,统计数组中的最大值,最小数,偶数和奇数的个数。 通过随机数值模拟掷色子的过程。投掷700次,分别统计各个点数出现的频次、比例,并以柱状图的方式显示可视化的结果。
时间: 2024-10-04 15:03:46 浏览: 28
C++两个一维数组相加求和
首先,让我们创建一个四维数组。在Python中,我们可以使用numpy库来进行这样的操作:
```python
import numpy as np
# 创建一个4维数组 (2x2x2x3)
arr_4d = np.zeros((2, 2, 2, 3))
```
然后,我们可以通过下标访问这个数组:
```python
# 索引示例
index = (0, 0, 0, 1) # 第0行第0列第0块第1个元素
print(arr_4d[index]) # 输出对应的元素
# 分片操作示例
slice_2d = arr_4d[:, :, :, 0] # 取所有行、列、块的第0个元素
print(slice_4d)
```
接下来,对二维数组进行求和操作:
```python
sum_2d = arr_4d.sum(axis=0) # 沿着第一个轴(行)求和
print(sum_2d)
```
对于统计数组中的最大值、最小值、偶数和奇数的个数,假设我们的二维数组只包含0和1(表示非负整数),可以这样做:
```python
arr_2d = np.random.randint(0, 2, size=(20,))
max_val, min_val = arr_2d.max(), arr_2d.min()
even_count = sum(arr_2d[arr_2d % 2 == 0])
odd_count = len(arr_2d) - even_count
print("最大值:", max_val)
print("最小值:", min_val)
print("偶数个数:", even_count)
print("奇数个数:", odd_count)
```
最后,模拟掷色子并可视化结果:
```python
from collections import Counter
import matplotlib.pyplot as plt
def roll_dice(num_rolls):
results = [np.random.randint(1, 7) for _ in range(num_rolls)]
counts = Counter(results)
return counts
dice_counts = roll_dice(700)
plt.bar(dice_counts.keys(), dice_counts.values())
plt.xlabel("点数")
plt.ylabel("频次")
plt.title("投掷700次色子的结果")
plt.show()
```
阅读全文