数据科学 IPython 笔记本 9.1 NumPy

作者 : 开心源码 本文共1640个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共211人阅读

9.1 NumPy

致谢:派生于 Olivier Grisel 分享的 scikit-learn 和 IPython 并行机器学习

译者:飞龙

协议:CC BY-NC-SA 4.0

  • NumPy 数组,dtype和形状
  • 常见数组操作
  • 原地修改形状和升级
  • 合并数组
  • 创立示例数据
import numpy as np

NumPy 数组,dtype和形状

a = np.array([1, 2, 3])print(a)print(a.shape)print(a.dtype)'''[1 2 3](3,)int64'''b = np.array([[0, 2, 4], [1, 3, 5]])print(b)print(b.shape)print(b.dtype)'''[[0 2 4] [1 3 5]](2, 3)int64'''np.zeros(5)# array([ 0.,  0.,  0.,  0.,  0.])np.ones(shape=(3, 4), dtype=np.int32)'''array([[1, 1, 1, 1],       [1, 1, 1, 1],       [1, 1, 1, 1]], dtype=int32)'''

常见数组操作

c = b * 0.5print(c)print(c.shape)print(c.dtype)'''[[ 0.   1.   2. ] [ 0.5  1.5  2.5]](2, 3)float64'''d = a + cprint(d)'''[[ 1.   3.   5. ] [ 1.5  3.5  5.5]]'''d[0]# array([ 1.,  3.,  5.])d[0, 0]# 1.0d[:, 0]# array([ 1. ,  1.5])d.sum()# 19.5d.mean()# 3.25d.sum(axis=0)# array([  2.5,   6.5,  10.5])d.mean(axis=1)# array([ 3. ,  3.5])

原地修改形状和升级

e = np.arange(12)print(e)# [ 0  1  2  3  4  5  6  7  8  9 10 11]# f 是 e 的内容的视图f = e.reshape(3, 4)print(f)'''[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11]]'''# 将 e 从索引 5 开始的值设为 0e[5:] = 0print(e)# [0 1 2 3 4 0 0 0 0 0 0 0]# f 也升级了f'''array([[0, 1, 2, 3],       [4, 0, 0, 0],       [0, 0, 0, 0]])'''# OWNDATA 展现了 f 并没有自己的数据f.flags'''C_CONTIGUOUS : TrueF_CONTIGUOUS : FalseOWNDATA : FalseWRITEABLE : TrueALIGNED : TrueUPDATEIFCOPY : False'''

合并数组

a# array([1, 2, 3])b'''array([[0, 2, 4],       [1, 3, 5]])'''d'''array([[ 1. ,  3. ,  5. ],       [ 1.5,  3.5,  5.5]])'''np.concatenate([a, a, a])# array([1, 2, 3, 1, 2, 3, 1, 2, 3])# 广播在需要时自动完成np.vstack([a, b, d])'''array([[ 1. ,  2. ,  3. ],       [ 0. ,  2. ,  4. ],       [ 1. ,  3. ,  5. ],       [ 1. ,  3. ,  5. ],       [ 1.5,  3.5,  5.5]])'''# 在机器学习中,使用 hstack# 来扩充或者者增加新的/交叉特征很有用np.hstack([b, d])'''array([[ 0. ,  2. ,  4. ,  1. ,  3. ,  5. ],       [ 1. ,  3. ,  5. ,  1.5,  3.5,  5.5]])'''

创立样例数据

%matplotlib inlineimport pylab as pltimport seabornseaborn.set()# 创立特定区间上的等间隔的数字x = np.linspace(0, 2, 10)plt.plot(x, 'o-');plt.show()

png

# 创立样例数据,增加少量噪声x = np.random.uniform(1, 100, 1000)y = np.log(x) + np.random.normal(0, .3, 1000)plt.scatter(x, y)plt.show()

png

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 数据科学 IPython 笔记本 9.1 NumPy

发表回复