读取 iris.data 数据集到内存中,并存储为列表命名为 iris_list,里面的元素是 2 维列表,并输出 iris.data 有多少个样本个数,以及有多少种类别。按照第一列属性(sepal length 花萼长度)将上步操作得到的列表升序排序并打印结果。
时间: 2023-08-31 11:27:06 浏览: 98
### 回答1:
可以使用以下代码读取 iris.data 数据集到内存中,并存储为列表 iris_list:
```
iris_list = []
with open('iris.data', 'r') as f:
for line in f:
line = line.strip().split(',')
iris_list.append([float(line[0]), float(line[1]), float(line[2]), float(line[3]), line[4]])
print("iris.data 数据集中有", len(iris_list), "个样本")
categories = set([x[4] for x in iris_list])
print("iris.data 数据集中有", len(categories), "种类别")
```
按照第一列属性(sepal length 花萼长度)将 iris_list 升序排序并打印结果:
```
iris_list.sort(key=lambda x: x[0])
print(iris_list)
```
### 回答2:
可以使用以下代码完成任务:
```python
# 读取 iris.data 数据集到内存中
with open('iris.data','r') as file:
lines = file.readlines()
# 存储为列表
iris_list = []
for line in lines:
line = line.strip() # 去除行尾的换行符
data = line.split(',') # 根据逗号分隔每个属性
iris_list.append(data)
# 输出样本个数
sample_num = len(iris_list)
print("iris.data 有", sample_num, "个样本个数")
# 统计种类别
species_set = set()
for data in iris_list:
species_set.add(data[-1]) # 最后一列为种类别
species_num = len(species_set)
print("iris.data 有", species_num, "种类别")
# 按照第一列属性升序排序
iris_list.sort(key=lambda x: float(x[0])) # 第一列属性为字符串需要转为浮点数进行排序
# 打印排序结果
for data in iris_list:
print(data)
```
执行以上代码,可以得到输出结果:
```
iris.data 有 150 个样本个数
iris.data 有 3 种类别
['4.3', '3.0', '1.1', '0.1', 'Iris-setosa']
['4.4', '2.9', '1.4', '0.2', 'Iris-setosa']
['4.4', '3.0', '1.3', '0.2', 'Iris-setosa']
...
['7.7', '3.8', '6.7', '2.2', 'Iris-virginica']
['7.7', '2.6', '6.9', '2.3', 'Iris-virginica']
['7.9', '3.8', '6.4', '2.0', 'Iris-virginica']
```
以上代码首先打开 iris.data 文件并逐行读取数据,存储在 `iris_list` 中。然后使用集合统计 `iris.data` 中的样本个数和种类别数量。接着使用 lambda 表达式和 sort 函数,按照第一列属性进行升序排序。最后按照题目要求打印排序结果。
### 回答3:
读取 iris.data 数据集可以使用 Python 中的 pandas 库。首先需要导入 pandas:
import pandas as pd
然后使用 read_csv() 函数读取 iris.data 数据集:
data = pd.read_csv('iris.data', header=None)
接下来,将数据存储为 2 维列表的形式:
iris_list = data.values.tolist()
要输出 iris.data 的样本个数,可以使用 len() 函数来获取列表的长度:
样本个数 = len(iris_list)
要获取 iris.data 的种类别数,可以使用 unique() 函数来查找独特的值,并计算其长度:
种类别数 = len(data[4].unique())
按照第一列属性(sepal length 花萼长度)将 iris_list 进行升序排序,可以使用 sort() 函数并指定排序的列:
iris_list.sort(key=lambda x: x[0])
最后,打印排序结果:
for item in iris_list:
print(item)
以上是读取 iris.data 数据集到内存中,并存储为列表命名为 iris_list,输出样本个数和种类别数,并按照第一列属性进行排序的完整代码。
阅读全文