• 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)+'
    ')   
    f.close()
    #读取文件里的内容
    #方法一
    read_file=open('f.txt','r')
    aa=read_file.read()   
    ##方法二loadtxt()函数
    tttt=numpy.loadtxt('f.txt') #得到一个数组
     
    
  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/whb-20160329/p/6024158.html
Copyright © 2020-2023  润新知