首页 > 编程语言 >[Python]numpy数据分析练习[21~30]

[Python]numpy数据分析练习[21~30]

时间:2022-11-25 19:40:41浏览次数:62  
标签:iris 21 Python dtype 30 数组 genfromtxt np numpy


[Python]numpy数据分析练习[21~40]

​题目和解析地址​​ 此博客主要用于自己做些知识点笔记

题目和答案

21. 如何在numpy数组中只打印小数点后三位?

只打印或显示numpy数组rand_arr的小数点后3位。
​​​set_printoptions​​​设置输出选项中的​​precision​

import numpy as np

rand_arr=np.random.random((5,3))
np.set_printoptions(precision=3)
print(rand_arr)

其他打印选项

属性

含义

precision

输出精度,小数点后几位

threshold

数组过大的时候,设置显示多少个数字,其余的用省略号表示

edgeitems

当省略数组内元素内容时要显示的元素数量

linewidth

每一行要打印的元素个数

suppress

是否要打印显示小数位(是否使用科学计数法打印数字)

nanstr

当数组元素值出现NaN时所要显示的字符串

infstr

数组元素值出現inf时所显示的字串

22. 如何通过e式科学记数法(如1e10)来打印一个numpy数组?

通过e式科学记数法来打印rand_arr(如1e10)
直接在ndarray后面初上e式科学记数法

import numpy as np
arr=np.linspace(1,10,9)
arr=arr.reshape(3,3)/1e10
print(arr)
rand_arr=np.random.random((5,3))/1e3
print(rand_arr)

23. 如何限制numpy数组输出中打印的项目数?

将numpy数组a中打印的项数限制为最多6个元素。
​​​threshold​​设置显示数量,中间超出的省略

import numpy as np
arr=np.arange(15)
np.set_printoptions(threshold=6)
print(arr)

24.如何打印完整的numpy数组而不截断

打印完整的numpy数组a而不截断。
把​​​threshold​​​属性设为无穷大即可
原本给的​​​np.nan​​会报错,下面给出解决方案

import numpy as np
import sys
np.set_printoptions(threshold=6)
a = np.arange(15)

# 原本给的答案有问题会报错
'''
np.set_printoptions(threshold=np.nan)
raise ValueError("threshold must be non-NAN, try "
ValueError: threshold must be non-NAN, try sys.maxsize for untruncated representation
'''
#np.nan改为sys.maxsize或者np.inf即可
np.set_printoptions(threshold=sys.maxsize)
print(a)

25. 如何导入数字和文本的数据集保持文本在numpy数组中完好无损?

导入鸢尾属植物数据集,保持文本不变。

使用​​genfromtxt​​​导入数据,参数分别为来源,分隔符,类型
​​​names​​​参数给每列分配一个名字
保持文本不变那就是原样传入,设置dtype为​​​object​​即可

import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris=np.genfromtxt(url,delimiter=',',dtype='object')
names = ('sepallength', 'sepalwidth', 'petallength', 'petalwidth', 'species')
print(iris)
names=()

26. 如何从1维元组数组中提取特定列?

从前面问题中导入的一维鸢尾属植物数据集中提取文本列的物种
给定输入​​​dtype=None​​​,给了个1维元组
row[4]即传第4列

species=np.array([row[4] for row in iris_1d])
import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris_1d=np.genfromtxt(url,delimiter=',',dtype=None)
print(iris_1d.shape)
species=np.array([row[4] for row in iris_1d])
print(species)
names=()

27. 如何将1维元组数组转换为2维numpy数组?

通过省略鸢尾属植物数据集种类的文本字段,将一维鸢尾属植物数据集转换为二维数组iris_2d。
使用​​​usecols​​参数选择要用的列

import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris_1d=np.genfromtxt(url,delimiter=',',dtype=None)
iris_2d=np.genfromtxt(url,delimiter=',',dtype=float,usecols=[0,1,2,3])
print(iris_2d)

另外一种转化的方法(不是很懂)

import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris_1d=np.genfromtxt(url,delimiter=',',dtype=None)
iris_2d = np.array([row.tolist()[:4] for row in iris_1d])
print(iris_2d)

28. 如何计算numpy数组的均值,中位数,标准差?

计算第一列的均值中位数标准差
​​​usecols​​取出第一列,然后直接函数计算即可

import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris_1d=np.genfromtxt(url,delimiter=',',dtype='object')
sepallength=np.genfromtxt(url,delimiter=',',dtype=float,usecols=[0])
mu,med,sd=np.mean(sepallength),np.median(sepallength),np.std(sepallength)
print(mu,med,sd)

29. 如何规范化数组,使数组的值正好介于0和1之间?

归一化,数模挺常用的操作
获取数据后照着公式写即可
[Python]numpy数据分析练习[21~30]_hive

import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris_1d=np.genfromtxt(url,delimiter=',',dtype='object')
sepallength=np.genfromtxt(url,delimiter=',',dtype=float,usecols=[0])
Smax,Smin=sepallength.max(),sepallength.min()
S=(sepallength-Smin)/(Smax-Smin)
print(S)

30. 如何计算Softmax得分?

了解一下Softmax,相较hardmax(也就是我们平常说的最大值)
Softmax的含义就在于不再唯一的确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。
可以看一下​​​这篇文章​​​[Python]numpy数据分析练习[21~30]_python_02

import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris_1d=np.genfromtxt(url,delimiter=',',dtype='object')
sepallength=np.genfromtxt(url,delimiter=',',dtype=float,usecols=[0])

def softmax(x):
e_x=np.exp(x-np.max(x))
return e_x/e_x.sum(axis=0)

print(softmax(sepallength))


标签:iris,21,Python,dtype,30,数组,genfromtxt,np,numpy
From: https://blog.51cto.com/u_15891800/5887534

相关文章

  • [数模小记]2021深圳杯&东三省
    [数模小记]2021深圳杯&东三省上午和队友把深圳杯&东三省的论文交了,终于迎来了完结撒花的时刻,感谢队友带飞,现在简单谈谈感想吧。比赛评价没想到第一次打数模就是深圳杯,基本算......
  • [Python]常用代码块
    [Python]常用代码块3天速通了一波pythonPTA的语法题,感觉和c/c++差不了太多吧。东西很少都是基础的玩意,主要防止暑假上去忘记了,以后如果有别的那再补充好了。代码片段输入每......
  • day20221125周五今天学了什么知识?节约时间 seize the time
    day20221125周五今天学了什么知识?节约时间seizethetime买纯牛奶。 公司的网不能看课的话,那就下载下来看。自己没钱,存钱。然后吃蔬菜对身体好。节俭和勤劳是美德。......
  • python_小练习
    #3种forin区别#foriteminlist:#item为列表元素#foriinrange(len(list)):#i为列表索引#forkeyindict:#key为字典的键#建议餐厅录入系统#创......
  • 2022.11.21-27 训练小记
    2022/11/21-27训练小记CF1761D.CarryBit赛时感觉很不可做,对着题解想明白的qwq下文起用\(a_i,b_i\)表示其二进制表示下的第\(i\)位(1-indexed)。人类智慧地想到记......
  • 【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分
    全文下载链接:http://tecdat.cn/?p=23544 在本文中,长短期记忆网络——通常称为“LSTM”——是一种特殊的RNN递归神经网络,能够学习长期依赖关系。最近我们被客户要求撰写......
  • [oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话
    ​ 换行字符 回忆上次内容struct包可以让我们使用封包格式把数字封包到字节里pack函数负责封包unpack函数负责解封我们通过封到不同的字节状态遍历了......
  • 李峋同款爱心代码(python版),跳动的心,给你爱的人一个惊喜(附源代码)
    Hello大家好如何浪漫的表白,作为程序员出身的小编,今天就带你实现热播剧《点燃我,温暖你》中超火的李峋同款爱心代码!前面是教程,怕麻烦的朋友可以直接划到文末,下载现成的,下载......
  • python中的字典Dict
    Python中,字典由任意个元素构成的集合,每一个元素称为Item,也称为Entry。这个Item是由(key,value)组成的二元组。字典是可变的、无序的、key不重复的key-value键值对集合......
  • python练习题:求10万以内的质数
    1、使用质数定义计算#version1importdatetime#导入模块计算效率start=datetime.datetime.now()count=0forxinrange(2,100000):#求指定范围内的质数......