# 1、创建二维数组30个,五行六列,求出平均值,统计出超过平均值的元素个数,知道这些元素的位置 # 2、所有即是三的倍数,也是五倍数的数 # 3、求出最大值和最小值,如果最大值或最小值有多个,保留一个,其余替换为0 1,2,3是一道题目
时间: 2024-09-26 20:16:41 浏览: 23
1. 要创建一个30个元素的二维数组,假设它是5行6列的整型数组,首先需要初始化这个数组,然后计算所有元素的总和,除以元素总数得到平均值。接下来遍历数组,找出那些大于平均值的元素及其位置,可以使用一个哈希集合或列表来存储它们。最后统计并返回超过平均值的元素个数以及它们在数组中的索引。
```python
import numpy as np
# 创建二维数组
arr = np.zeros((5, 6))
for i in range(5):
for j in range(6):
arr[i][j] = i * 6 + j # 示例数据,实际可以根据需求填充
# 计算平均值
average = np.mean(arr)
# 遍历数组寻找超过平均值的元素
over_average_count = 0
over_average_positions = []
for i, row in enumerate(arr):
for j, value in enumerate(row):
if value > average:
over_average_count += 1
over_average_positions.append((i, j))
print(f"平均值: {average}")
print(f"超过平均值的元素个数: {over_average_count}")
print(f"超过平均值的元素位置: {over_average_positions}")
```
2. 所有既是3的倍数,又是5的倍数的数被称为3和5的公倍数,可以用Python来找出:
```python
def find_multiples(n, start=1):
multiples = []
for num in range(start, n+1):
if num % 3 == 0 and num % 5 == 0:
multiples.append(num)
return multiples
multiples_15 = find_multiples(100) # 查找1到100之间符合条件的数
print("所有3和5的公倍数:", multiples_15)
```
3. 求出数组的最大值和最小值,如果有多个相同的最大值或最小值,则将其他实例替换为0,可以这样做:
```python
max_value = max(max(arr), *map(max, arr)) # 找出全局最大值
min_value = min(min(arr), *map(min, arr)) # 找出全局最小值
if len(set(arr.flatten())) > 1: # 检查是否有多个最大值或最小值
arr[arr == max_value] = 0
arr[arr == min_value] = 0
print(f"最大值: {max_value}, 最小值: {min_value}")
```
阅读全文