numpy练习(二)

news/2024/7/18 11:19:02 标签: numpy

numpy_0">numpy练习(二)

对于二维随机数组中各元素,保留其 2 位小数
z = np.random.random((5,5))
print(z)
np.set_printoptions(precision=2)
z
使用科学记数法输出 NumPy 数组
z = np.random.random([5,5])
print(z)
z/1e3
使用 NumPy 找出百分位数(25%,50%,75%)
z = np.arange(15)
print(z)
np.percentile(z, q=[25,50,75])
找出数组中缺失值的总数及所在位置
z = np.random.rand(10,10)
z[np.random.randint(10,size=5),np.random.randint(10,size=5)] = np.nan
print(z)
print('缺失值总数:\n', np.isnan(z).sum())
print('缺失值索引:\n',np.where(np.isnan(z)))
从随机数组中删除包含缺失值的行
z[np.sum(np.isnan(z),axis=1) == 0]
统计随机数组中的各元素的数量
z = np.random.randint(0,100,25).reshape(5,5)
print(z)
np.unique(z, return_counts=True)
将数组中各元素按指定分类转换为文本值
z = np.random.randint(1,4,10)
print(z)
label_map = {1:'汽车',2:'公交车',3:'火车'}
[label_map[x] for x in z]
将多个 1 维数组拼合为单个 Ndarray
z1 = np.arange(3)
z2 = np.arange(3,7)
z3 = np.arange(7,10)
z = np.array([z1,z2,z3])
print(z)
np.concatenate(z)
打印各元素在数组中升序排列的索引
z = np.random.randint(100, size=10)
print('array:',z)
z.argsort()
得到二维随机数组各行的最大值
z = np.random.randint(1,100,[5,5])
print(z)
np.amax(z,axis=1)
得到二维随机数组各行的最小值
z = np.random.randint(1,100,[5,5])
print(z)
np.apply_along_axis(np.min, arr=z, axis=1)
计算两个数组之间的欧氏距离
a = np.array([1, 2])
b = np.array([7, 8])
np.linalg.norm(b-a)
打印复数的实部和虚部
z = np.array([1 + 2j, 3 + 4j, 5 + 6j])
print('实部:',z.real)
print('虚部:',z.imag)
求解给出矩阵的逆矩阵并验证
matrix = np.array([[1., 2.], [3., 4.]])
inverse_matrix = np.linalg.inv(matrix)

assert np.allclose(np.dot(matrix, inverse_matrix), np.eye(2))
inverse_matrix
使用 Z-Score 标准化算法对数据进行标准化处理

Z-Score 标准化公式:
Z = X − m e a n ( X ) s d ( X ) Z = \frac{X-\mathrm{mean}(X)}{\mathrm{sd}(X)} Z=sd(X)Xmean(X)

def zscore(x, axis = None):
    xmean = x.mean(axis=axis, keepdims=True)
    xstd = np.std(x, axis=axis, keepdims=True)
    zscore = (x-xmean)/xstd
    return zscore
z = np.random.randint(10, size=(5,5))
print(z)
zscore(z)
使用 Min-Max 标准化算法对数据进行标准化处理

Min-Max 标准化公式:
Y = Z − min ⁡ ( Z ) max ⁡ ( Z ) − min ⁡ ( Z ) Y = \frac{Z-\min(Z)}{\max(Z)-\min(Z)} Y=max(Z)min(Z)Zmin(Z)

def min_max(x, axis=None):
    min = x.min(axis=axis, keepdims=True)
    max = x.max(axis=axis, keepdims=True)
    result = (x-min)/(max-min)
    return result
z = np.random.randint(10, size=(5,5))
print(z)
min_max(z)
使用 L2 范数对数据进行标准化处理

L2 范数计算公式:
L 2 = x 1 2 + x 2 2 + … + x i 2 L_2 = \sqrt{x_1^2 + x_2^2 + \ldots + x_i^2} L2=x12+x22++xi2

def l2_normalize(x, axis=-1, order=2):
    l2 = np.linalg.norm(x, ord = order, axis=axis, keepdims=True)
    l2[l2==0] = 1
    return x/l2
z = np.random.randint(10, size=(5,5))
print(z)
l2_normalize(z)
使用 NumPy 计算变量直接的相关性系数
Z = np.array([
    [1, 2, 1, 9, 10, 3, 2, 6, 7], # 特征 A
    [2, 1, 8, 3, 7, 5, 10, 7, 2], # 特征 B
    [2, 1, 1, 8, 9, 4, 3, 5, 7]]) # 特征 C

np.corrcoef(Z)
使用 NumPy 计算矩阵的特征值和特征向量
M = np.matrix([[1,2,3],[4,5,6],[7,8,9]])
w,v = np.linalg.eig(M)
w,v   #w为特征值,v特征向量
使用 NumPy 计算 Ndarray 两相邻元素差值
z = np.random.randint(1,10,10)
print(z)
print(np.diff(z, n=1))  #计算z两相邻元素差值
print(np.diff(z, n=2))  #重复计算2次
print(np.diff(z, n=3))  #重复计算3次
使用 NumPy 将 Ndarray 相邻元素依次累加
z = np.random.randint(1,10,10)
print(z)
"""
[第一个元素, 第一个元素 + 第二个元素, 第一个元素 + 第二个元素 + 第三个元素, ...]
"""
np.cumsum(z)
使用 NumPy 按列连接两个数组
z1 = np.array([1,2,3])
z2 = np.array([4,5,6])
np.c_[z1, z2]
使用 NumPy 按行连接两个数组
z1 = np.array([1,2,3])
z2 = np.array([4,5,6])
np.r_[z1, z2]
使用 NumPy 打印九九乘法表
np.fromfunction(lambda i,j: (i + 1) * (j + 1), (9, 9))

http://www.niftyadmin.cn/n/1130450.html

相关文章

一个ASP.NET2.0的小项目-BLOG

一个小程序,基于ASP.NET2.0的,大家可以下载后看看,供新手学习用。程序是一个最简单的多人BLOG系统,由于是公司内网用的,需要windows验证也和以前的一些表有牵连,大家可能调试不会调试通。里面有一个SQL文件…

理解jQuery对象$.html

前面的话 如果要比喻jQuery和原生javascript的关系,我个人认为是自动档和手动档汽车的区别。使用原生javascript,可以知道离合器以及档位的作用;而使用jQuery,则把离合器和手动档位封装到函数,直接前进、后退或驻车即可…

项目任务管理系统

https://www.activecollab.com/http://www.zentao.net/https://tower.im/https://www.teambition.com/转载于:https://www.cnblogs.com/dmdj/p/3769566.html

http/1.1 500 server error错误的解决方法

http/1.1 500 server error错误的解决方法 www.chinacs.net 2006-03-25 中文c#技术站 最近web服务器报http/1.1 500 server error错误,在网上查,得到如下解决办法:regsvr32 %windir%/system32/jscript.dll 具体造成原因在查明,初…

数据挖掘基本流程

数据挖掘基本流程 数据挖掘基本流程: 商业理解:从商业的角度理解项目需求,通过数据挖掘来帮助业务。数据理解:尝试手机部分数据,对其进行探索,从而对数据有个初步认知。数据准备:收集数据并对…

svn删除所有.svn文件

svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \;转载于:https://www.cnblogs.com/dirt2/p/5796461.html

ADO.NET 2.0中的DataSet和DataTable

MSDN2005年11月刊登载了John Papa的一篇文章《DataSet and DataTable in ADO.NET 2.0》,详细介绍了ADO.Net 2.0的一些新功能和特性,对于利用ADO.NET开发的程序员来说,是值得关注的。现介绍如下: 一.功能增强的DataTab…

pandas练习(一)

pandas练习(一) 建立一个以 2018 年每一天为索引,值为随机数的 Series dti pd.date_range(start2018-01-01,end2018-12-31,freqD) s pd.Series(np.random.rand(len(dti)),indexdti) s统计s 中每一个周三对应值的和 s[s.index.weekday 2…