1. NumPy安装
使用pip包管理工具进行安装
$ sudo pip install numpy
$ sudo pip instlal ipython $ ipython --pylab #pylab模式下, 会自动导入SciPy, NumPy, Matplotlib模块
2.1. NumPy数组对象
具体解释可以看每一行代码后的解释和输出
In [1]: a = arange(5) # 创建数据 In [2]: a.dtype Out[2]: dtype('int64') # 创建数组的数据类型 In [3]: a.shape # 数组的维度, 输出为tuple Out[3]: (5,) In [6]: m = array([[1, 2], [3, 4]]) # array将list转换为NumPy数组对象 In [7]: m # 创建多维数组 Out[7]: array([[1, 2], [3, 4]]) In [10]: m.shape # 维度为2 * 2 Out[10]: (2, 2) In [14]: m[0, 0] # 访问多维数组中特定位置的元素, 下标从0开始 Out[14]: 1 In [15]: m[0, 1] Out[15]: 2
2.2. 数组的索引和切片
In [16]: a[2: 4] # 切片操作类似与Python中list的切片操作 Out[16]: array([2, 3]) In [18]: a[2 : 5: 2] # 切片步长为2 Out[18]: array([2, 4]) In [19]: a[ : : -1] # 翻转数组 Out[19]: array([4, 3, 2, 1, 0]) In [20]: b = arange(24).reshape(2, 3, 4) # 修改数组的维度 In [21]: b.shape Out[21]: (2, 3, 4) In [22]: b # 打印数组 Out[22]: array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) In [23]: b[1, 2, 3] # 选取特定元素 Out[23]: 23 In [24]: b[ : , 0, 0] # 忽略某个下标可以用冒号代替 Out[24]: array([ 0, 12]) In [23]: b[1, 2, 3] Out[23]: 23 In [24]: b[ : , 0, 0] # 忽略多个下标可以使用省略号代替 Out[24]: array([ 0, 12]) In [26]: b.ravel() # 数组的展平操作 Out[26]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]) In [27]: b.flatten() # 与revel功能相同, 这个函数会请求分配内存来保存结果 Out[27]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]) In [30]: b.shape = (6, 4) # 可以直接对shape属性赋值元组来设置维度 In [31]: b Out[31]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]) In [30]: b.shape = (6, 4) # 矩阵的转置 In [31]: b Out[31]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]])
2.3. 组合数组
In [1]: a = arange(9).reshape(3, 3) # 生成数组对象并改变维度 In [2]: a Out[2]: array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) In [3]: b = a * 2 # 对a数组对象所有元素乘2 In [4]: b Out[4]: array([[ 0, 2, 4], [ 6, 8, 10], [12, 14, 16]]) ####################### In [5]: hstack((a, b)) # 水平组合数组a和数组b Out[5]: array([[ 0, 1, 2, 0, 2, 4], [ 3, 4, 5, 6, 8, 10], [ 6, 7, 8, 12, 14, 16]]) In [6]: vstack((a, b)) # 垂直组合数组a和数组b Out[6]: array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 0, 2, 4], [ 6, 8, 10], [12, 14, 16]]) In [7]: dstack((a, b)) # 深度组合数组, 沿z轴方向层叠组合数组 Out[7]: array([[[ 0, 0], [ 1, 2], [ 2, 4]], [[ 3, 6], [ 4, 8], [ 5, 10]], [[ 6, 12], [ 7, 14], [ 8, 16]]])
2.4. 分割数组
In [8]: a Out[8]: array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) In [9]: hsplit(a, 3) # 将数组沿水平方向分割成三个相同大小的子数组 Out[9]: [array([[0], [3], [6]]), array([[1], [4], [7]]), array([[2], [5], [8]])] In [10]: vsplit(a, 3) # 将数组沿垂直方向分割成三个子数组 Out[10]: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]
2.5. 数组的属性
In [12]: a.ndim # 给出数组的尾数或数组的轴数 Out[12]: 2 In [13]: a.size # 数组中元素的个数 Out[13]: 9 In [14]: a.itemsize # 数组中元素在内存中所占字节数(int64) Out[14]: 8 In [15]: a.nbytes # 数组所占总字节数, size * itemsize Out[15]: 72 In [18]: a.T # 和transpose函数一样, 求数组的转置 Out[18]: array([[0, 3, 6], [1, 4, 7], [2, 5, 8]])
2.6. 数组的转换
In [19]: a.tolist() # 将NumPy数组转换成python中的list Out[19]: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
3. 常用函数
In [22]: c = eye(2) # 构建2维单位矩阵 In [23]: c Out[23]: array([[ 1., 0.], [ 0., 1.]]) In [25]: savetxt("eye.txt", c) # 将矩阵保存到文件中 In [5]: c, v = loadtxt("test.csv", delimiter=",", usecols=(0, 1), unpack=True) # 分隔符为, usecols为元组表示要获取的字段数据(每一行的第零段和第一段), unpack为True表示拆分存储不同列的数据, 分别存入c, v In [12]: c Out[12]: array([ 1., 4., 7.]) In [13]: mean(c) # 计算矩阵c的mean均值 Out[13]: 4.0 In [14]: np.max(c) # 求数组中的最大值 Out[14]: 7.0 In [15]: np.min(c) # 求数组中的最小值 Out[15]: 1.0 In [16]: np.ptp(c) # 返回数组最大值和最小值之间的差值 Out[16]: 6.0 In [18]: numpy.median(c) # 找到数组中的中位数(中间两个数的平均值) Out[18]: 4.0 In [19]: numpy.var(c) # 计算数组的方差 Out[19]: 6.0 In [20]: numpy.diff(c) # 返回相邻数组元素的差值构成的数组 Out[20]: array([ 3., 3.]) In [21]: numpy.std(c) # 计算数组的标准差 Out[21]: 2.4494897427831779 In [22]: numpy.where(c > 3) # 返回满足条件的数组元素的下标组成的数组 Out[22]: (array([1, 2]),)
本文向大家介绍PyMongo安装使用笔记,包括了PyMongo安装使用笔记的使用技巧和注意事项,需要的朋友参考一下 这里是简单的安装和使用记录,首先要有一个可用的mongo环境,win环境或者linux环境都可以。 假定你对mongo有所了解和知道一些命令行操作。 安装和更新 跟大多数py包安装一样,可以源码安装,也可以使用pip或者easy_install来安装 安装 升级 其他安装方法请参照文
本文向大家介绍RVM安装和使用总结笔记,包括了RVM安装和使用总结笔记的使用技巧和注意事项,需要的朋友参考一下 安装RVM命令: 然后修改用户配置文件/Users/username/.profile,你也可以写到别的全局配置里. 添加一行代码: 如果"$HOME/.rvm/scripts/rvm" 存在,则执行 重启Terminal,RVM就安装好了. RVM的使用过程中不需要使用sudo,gem
我寻找这个问题,但他们的解决方案没有帮助。问题-我安装了这些库,但是jupyter笔记本没有看到它们,不是所有的,其中一些是我安装的,它完美地导入了它们。tensorflow和keras的问题 模块中的ModuleNotFoundError回溯(最近一次调用上次)ipython-input-9-c79ed1f6e965 ModuleNotFoundError:没有名为“tensorflow”的模块
本文向大家介绍CentOS6.6 安装 Tengine 笔记,包括了CentOS6.6 安装 Tengine 笔记的使用技巧和注意事项,需要的朋友参考一下 在先前的文章中介绍过Tengine,先前只是使用了运维人员配置好的内容,未自己进行过安装配置。周末闲来无事,对于Tengine进行了尝试性的安装。记录下面方便以后再做改进。 Tengine官网上有个非常简单的教程,中间并未涉及到一些常用的设置,
这是我的构建文件。我正在使用Intellij CE。我正在尝试使用这个雅虎财务api: 当我在Gradle工具窗口中手动同步项目时,在yahofinance库下会出现一条红线,并显示一条消息 我做错了什么?
本地安装 Gitbook 并创建笔记。 根据官网说明 第一步,先安装 npm install gitbook-cli -g 然后,创建一个笔记文件夹 mkdir my-note 然后执行 cd my-note gitbook init 这样,可以生成两个文件 README.md 的内容会显示在书皮上 SUMMARY.md 是目录 启动服务器,查看和编辑书籍 gitbook serve 这样