题目和解析地址
此博客主要用于自己做些知识点笔记
只打印或显示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时所显示的字串 |
通过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之间?
归一化,数模挺常用的操作
获取数据后照着公式写即可
S
=
x
−
S
m
i
n
S
m
a
x
−
S
m
i
n
S=frac {x-S_{min}} {S_{max}-S_{min}}
S=Smax−Sminx−Smin
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的含义就在于不再唯一的确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。
可以看一下这篇文章
D
=
m
a
x
(
S
)
S
o
f
t
m
a
x
(
z
i
)
=
e
z
i
−
D
∑
c
=
1
C
e
z
c
−
D
D=max(S)\ Softmax(z_i)=frac {e^{z_i-D}} {sum_{c=1}^C e^{z_c-D}}
D=max(S)Softmax(zi)=∑c=1Cezc−Dezi−D
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))


![[Python]numpy数据分析练习[21~30] [Python]numpy数据分析练习[21~30]](http://www.mshxw.com/aiimages/31/273366.png)
