优化代码sepal_length = [i[0] for i in iris_array] sepal_length = [float(i) for i in sepal_length]
时间: 2023-05-22 15:03:13 浏览: 167
可以使用以下方式进行一次性优化:
```
sepal_length = [float(i[0]) for i in iris_array]
```
这个表达式使用了一个列表推导式,将 `iris_array` 中每个子列表的第一个元素转换为浮点数,并将这些浮点数存储在 `sepal_length` 列表中。这个表达式比分开进行两次转换更加简洁和高效。
相关问题
读取 iris.data 数据集到内存中,并存储为列表命名为 iris_list,里面的元素可以是自定义对象,也可以是 2 维列表,并输出 iris.data 有多少个样本个数,以及有多少种类别。按照第一列属性(sepal length 花萼长度)将上步操作得到的列表升序排序并打印结果。实现一Python 函数,能够实现对 iris_list 的有放回随机抽样,函数参数为抽样列表 data,抽样个数number ,并测试打印结果。 实现一个 Python 函数,能够实现对 iris_list 的无放回随机抽样,函数参数为抽样列表 data,抽样个数 number ,并测试打印结果。统计 iris 各列属性均值,方差,标准差,中位数并打印输出。
好的,我会尽力回答您的问题。以下是我的回答:
1. 读取 iris.data 数据集到内存中,并存储为列表命名为 iris_list,里面的元素可以是自定义对象,也可以是 2 维列表,并输出 iris.data 有多少个样本个数,以及有多少种类别。
```
import csv
iris_list = []
species_set = set()
with open('iris.data', 'r') as f:
reader = csv.reader(f)
for row in reader:
if len(row) == 5:
iris_list.append(row)
species_set.add(row[4])
print("iris.data 有", len(iris_list), "个样本")
print("iris.data 有", len(species_set), "种类别")
```
2. 按照第一列属性(sepal length 花萼长度)将上步操作得到的列表升序排序并打印结果。
```
sorted_iris_list = sorted(iris_list, key=lambda x: float(x[0]))
for row in sorted_iris_list:
print(row)
```
3. 实现一Python 函数,能够实现对 iris_list 的有放回随机抽样,函数参数为抽样列表 data,抽样个数number ,并测试打印结果。
```
import random
def random_sample_with_replacement(data, number):
return [random.choice(data) for _ in range(number)]
sample = random_sample_with_replacement(iris_list, 5)
for row in sample:
print(row)
```
4. 实现一个 Python 函数,能够实现对 iris_list 的无放回随机抽样,函数参数为抽样列表 data,抽样个数 number ,并测试打印结果。
```
def random_sample_without_replacement(data, number):
return random.sample(data, number)
sample = random_sample_without_replacement(iris_list, 5)
for row in sample:
print(row)
```
5. 统计 iris 各列属性均值,方差,标准差,中位数并打印输出。
```
import numpy as np
iris_array = np.array(iris_list, dtype=float)
mean = np.mean(iris_array, axis=0)
variance = np.var(iris_array, axis=0)
std_deviation = np.std(iris_array, axis=0)
median = np.median(iris_array, axis=0)
print("各列属性均值:", mean)
print("各列属性方差:", variance)
print("各列属性标准差:", std_deviation)
print("各列属性中位数:", median)
```
希望这些回答能够帮助您!
基于iris数据集的统计分析 3 实验目的: 1 掌握函数的定义和调用、及Python文件操作基础。 2 熟悉掌握Numpy数值计算;熟悉Numpy的数据处理方法。 3 掌握Numpy中的数据统计与分析排序、数据去重,常用统计分析方法。 4实验环境: Anaconda3 5实验内容与要求: 本实训读取iris数据集中鸢尾花的萼片、花瓣长度数据,并对其进行排序,去重,并求出和、累计和、均值、标准差、方差、最小值、最大值。 1、导入模块,获取数据,显示前5行 2、数据清理,转换为数组 3、获取Petal.Length列,转换为浮点数,并输出前5个数 4、对Petal.Length列进行排序、去重 5、求出Petal.length列的和、均值、标准差、方差、最小值、最大值 6、开放式题目:任选两列进行任意统计分析(如四则运算、数组变换、统计分析等)
以下是基于iris数据集的统计分析3的代码实现:
```python
import numpy as np
# 1. 导入数据,显示前5行
with open("iris.data", "r") as f:
data = f.readlines()
for i in range(5):
print(data[i])
# 2. 数据清理,转换为数组
data_array = np.genfromtxt("iris.data", delimiter=",", usecols=(0, 1, 2, 3))
data_array = np.delete(data_array, np.s_[150:], 0)
# 3. 获取Petal.Length列,转换为浮点数,并输出前5个数
petal_length = data_array[:, 2].astype(np.float)
print("Petal.Length前5个数:", petal_length[:5])
# 4. 对Petal.Length列进行排序、去重
sorted_petal_length = np.sort(petal_length)
unique_petal_length = np.unique(petal_length)
# 5. 求出Petal.length列的和、均值、标准差、方差、最小值、最大值
petal_length_sum = np.sum(petal_length)
petal_length_mean = np.mean(petal_length)
petal_length_std = np.std(petal_length)
petal_length_var = np.var(petal_length)
petal_length_min = np.min(petal_length)
petal_length_max = np.max(petal_length)
print("Petal.Length列的和:", petal_length_sum)
print("Petal.Length列的均值:", petal_length_mean)
print("Petal.Length列的标准差:", petal_length_std)
print("Petal.Length列的方差:", petal_length_var)
print("Petal.Length列的最小值:", petal_length_min)
print("Petal.Length列的最大值:", petal_length_max)
# 6. 任选两列进行任意统计分析
# 选取Petal.Length和Sepal.Length列进行四则运算
sepal_length = data_array[:, 0].astype(np.float)
result = petal_length + sepal_length
print("Petal.Length和Sepal.Length列进行四则运算结果:", result)
```
阅读全文