Python科学计算—numpy模块总结(1)
作为一个本科学数学专业,目前研究非线性物理领域的研究僧。用什么软件进行纯科学计算好,Fortran永远是第一位的;matlab虽然很强大,可以很容易的处理大量的大矩阵,但是求解我们的模型(有时可能是几万个方程,而且需要演化很长时间才能到达稳态)使用matlab计算是很慢的。Python相对matlab来说,在速度上处于Fortran与matlab中间。
Python处理科学计算只是它很小的一部分功能.python是交互式解释语言,开源的,拥有大量的第三方模块,可以跨平台,网页爬虫,数据挖掘,数据库应用,多媒体应用,Web开发,电子游戏的应用等;对于我这个非计算机专业的,不打算读博,未来想进入互联网的学渣来说,学习python语言是一个很好的选择。
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 01 15:38:10 2016
科学计算,模块numpy,
@author: whb
"""
import numpy
"""
一维数组的建立,索引与切片
"""
a=numpy.arange(5)
arr=numpy.array([numpy.arange(4),numpy.arange(4)])
a=arange(5) #得到一个5个元素的数组;
b=a[1:]#得到第1个元素以后的元素
a[::-1]#反转
"""
多维数组
"""
'建立'
#方法一
two_d_array=array([arange(5),4*arange(5)])
tree_d_array=array([[arange(5),4*arange(5)],[arange(5),4*arange(5)]])
#方法二:使用reshape()与arange()函数结合
two=arange(6).reshape(2,3)
tree=arange(18).reshape(2,3,3)
'操作(索引,复制,删除,替换),展开'
two[:,1]#与matlab相同
two[:,1]=[3,5] #复制
tree[1,...] #得到第二层所有的元素
tree[1,1,:] #得到第二层的第二行的元素
tree[::-1]#将一层的元素与第二层的元素交换
d=tree.ravel() #ravel函数,只是展开,显示。
tree_zk=tree.flatten() #flatten()函数会请求内存保留结果
"""
数组的组合:水平、垂直、深度组合。(vstack,dstack,hstack,column_stack,row_stack)这些函数都是以元组
作为参数
"""
A=arange(9).reshape(3,3)
B=2*A #2乘以A数组中的每一个元素
"水平组合"
A_B=hstack((A,B)) #(A,B)组成一个元组传递给函数hstack()
"垂直组合"
A_B_V=vstack((A,B))
"深度组合"
A_B_d=dstack((A,B))
"""
数组切割:split =hsplit,vsplit,dsplit;
"""
A_split=hsplit(A,3)
A_sp2=vsplit(A,3)
A.tolist() #转为列表
"""
文件读写
"""
eye_1=numpy.eye(2) #创建一个单位矩阵2*2
i=range(17)
numpy.savetxt("w.txt",i)#保存一个数组
##方法二
f=open('f.txt','a') # w,r,a(写入、读取、追加)
for j in range(0,100):
f.write(str(j)+'\n')
f.close()
#读取文件里的内容
#方法一
read_file=open('f.txt','r')
aa=read_file.read()
##方法二loadtxt()函数
tttt=numpy.loadtxt('f.txt') #得到一个数组
Python科学计算—numpy模块总结(1)的更多相关文章
- Python科学计算包模块的安装(ubuntu)
Python的科学计算包设计到C语言代码的编译,采用pip的方式安装会出现错误. 一种简单的方式是采用的集成包,具体的步骤参考:https://www.continuum.io/downloads#_ ...
- Python 科学计算涉及模块
模块1.数据基础 numpy 模块2.数值运算 scipy 模块3.符号运算 sympy 模块4.图形绘制 matplotlib
- windows下安装python科学计算环境,numpy scipy scikit ,matplotlib等
安装matplotlib: pip install matplotlib 背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器 ...
- Python科学计算基础包-Numpy
一.Numpy概念 Numpy(Numerical Python的简称)是Python科学计算的基础包.它提供了以下功能: 快速高效的多维数组对象ndarray. 用于对数组执行元素级计算以及直接对数 ...
- Python科学计算库Numpy
Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...
- Python科学计算发行版—Anaconda
Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖 ...
- Python科学计算(二)windows下开发环境搭建(当用pip安装出现Unable to find vcvarsall.bat)
用于科学计算Python语言真的是amazing! 方法一:直接安装集成好的软件 刚开始使用numpy.scipy这些模块的时候,图个方便直接使用了一个叫做Enthought的软件.Enthought ...
- Python 科学计算-介绍
Python 科学计算 作者 J.R. Johansson (robert@riken.jp) http://dml.riken.jp/~rob/ 最新版本的 IPython notebook 课程文 ...
- Python科学计算的瑞士军刀——Anaconda 安装与配置
Introduce Python是一种强大的编程语言.其提供了非常多用于科学计算的模块,常见的包含numpy.scipy和matplotlib.要利用Python进行科学计算.就须要一一安装所需的模块 ...
随机推荐
- Java面试11|Maven与Git
git的命令一定要掌握,如果学习可以参考:廖雪峰的官方网站 1.Maven 生命周期及Maven多项目聚合与继承 Maven的生命周期分如下的9个阶段. (1)clean 清理自动生成的文件,也就是t ...
- ajax三级联动下拉菜单
ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可: 来找一张表: 实现: 中国地域的三级联动:省.市.区: 图: 说一下思路: (1)当用户选择省份的时候触发事件,把当前的省份的id通过 ...
- 1707: [Usaco2007 Nov]tanning分配防晒霜
1707: [Usaco2007 Nov]tanning分配防晒霜 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 548 Solved: 262[Sub ...
- MVC+Spring.NET+NHibernate .NET SSH框架整合
在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MVC框架以后太灵活了(相比之前的web Form),嗯,关于.NET中的MVC框架我 ...
- [.net 面向对象程序设计深入](26)实战设计模式——使用Ioc模式(控制反转或依赖注入)实现松散耦合设计(1)
[.net 面向对象程序设计深入](26)实战设计模式——使用IoC模式(控制反转或依赖注入)实现松散耦合设计(1) 1,关于IOC模式 先看一些名词含义: IOC: Inversion of con ...
- 对bootstrap不同版本的总结
之前以为bootstrap2和bootstrap3没啥区别,无非就是功能增加了,简直是误区啊 bootstrap3与bootstrap2版本语法都不同啦 栅格写法 col-md-3/span3 文本效 ...
- JDBC(上)
1. 课程回顾 mysql加强 1)数据约束(表约束) 默认值: default 默认值 非空: not null 唯一: unique 主键: primary key (非空+唯一) 自增长: ...
- 实现Unity编辑器模式下的旋转
最近在做一个模型展示的项目,我的想法是根据滑动屏幕的x方向差值和Y方向的差值,来根据世界坐标下的X轴和Y轴进行旋转,但是实习时候总是有一些卡顿.在观察unity编辑器下的旋转之后,发现编辑器下的旋转非 ...
- Linux-ubuntu安装过程讲解
前言也不准备介绍Linux是什么,为什么要安装ubuntu?相信你能够看到这篇文章也知道自己想要做什么. 一,准备工具 1.VMwareWorkstation虚拟机 下载地址:https://my.v ...
- 一键部署ETCD集群脚本
这里使用三个节点,系统版本为CentOS7 # vim deploy-etcd.sh #!/bin/bash set -x set -e #更改这里的IP, 只支持部署3个节点etcd集群 decla ...