标签: scientific-computing

R MAT不能做什么?

我经常听到有人抱怨MATLAB许可证有多贵.然后,我不知道为什么他们不只是用八度[R .但后者是对的吗?你能用R代替MATLAB吗?

matlab r scientific-computing

137
推荐指数
9
解决办法
22万
查看次数

用scipy/numpy在python中分箱数据

是否有更有效的方法在预先指定的箱中取平均数组?例如,我有一个数字数组和一个对应于该数组中bin开始和结束位置的数组,我想在这些数据库中取平均值?我有下面的代码,但我想知道如何减少和改进它.谢谢.

from scipy import *
from numpy import *

def get_bin_mean(a, b_start, b_end):
    ind_upper = nonzero(a >= b_start)[0]
    a_upper = a[ind_upper]
    a_range = a_upper[nonzero(a_upper < b_end)[0]]
    mean_val = mean(a_range)
    return mean_val


data = rand(100)
bins = linspace(0, 1, 10)
binned_data = []

n = 0
for n in range(0, len(bins)-1):
    b_start = bins[n]
    b_end = bins[n+1]
    binned_data.append(get_bin_mean(data, b_start, b_end))

print binned_data
Run Code Online (Sandbox Code Playgroud)

python numpy scientific-computing scipy

95
推荐指数
5
解决办法
14万
查看次数

在科学环境中编程的实践?

背景

去年,我在一所大学的物理研究小组实习.在这一组中,我们主要使用LabVIEW编写程序来控制我们的设置,进行数据采集和分析数据.对于前两个目的,这非常正常,但对于数据分析,这是一个真正的痛苦.最重要的是,每个人都大多是自学成才,因此编写的代码通常非常混乱(难怪每个博士都迅速决定从头开始重写所有内容).由于IT部门严格的软件和网络规定,版本控制未知,无法设置.

现在,实际上事情确实令人惊讶,但是自然科学中的人们如何进行软件开发呢?

问题

一些具体问题:

  • 您使用哪些语言/环境来开发科学软件,尤其是数据分析?什么图书馆?(例如,你用什么来绘图?)
  • 对于没有任何重要编程背景的人进行过培训吗?
  • 你有没有像版本控制和错误跟踪的东西?
  • 您将如何尝试为编程创造一个体面的环境,而不会对个别科学家造成太大影响(特别是物理学家是顽固的人!)

到目前为止的答案摘要

到目前为止的答案(或我对它们的解释):( 2008-10-11)

  • 似乎使用最广泛的语言/包:
  • 几乎所有受访者都使用版本控制; 错误跟踪和其他过程不太常见.
  • 软件木工课程是向科学家传授编程和开发技术的好方法.
  • 如何改善事物?
    • 不要强迫人们遵守严格的协议.
    • 自己设置一个环境,并向他人展示好处.帮助他们自己开始使用版本控制,错误跟踪等.
    • 查看其他人的代码可能会有所帮助,但要注意并非每个人都可以理解这一点.

collaboration physics scientific-computing

92
推荐指数
8
解决办法
7247
查看次数

F#在科学计算中的表现

我很好奇F#性能与C++性能的对比情况如何?我问了一个关于Java的类似问题,我得到的印象是Java不适合重编码.

我已经读过F#应该具有更高的可扩展性和更高的性能,但这种真实性能与C++相比如何呢?关于当前实施的具体问题是:

  • 浮点数有多好?
  • 它是否允许矢量指令
  • 对优化编译器有多友好?
  • 它有多大的记忆足迹?它是否允许对内存位置进行细粒度控制?
  • 它是否具有分布式内存处理器的容量,例如Cray?
  • 在涉及大量处理的计算科学中,它可能具有哪些特征?
  • 是否有使用它的实际科学计算实现?

谢谢

c++ parallel-processing performance f# scientific-computing

71
推荐指数
6
解决办法
2万
查看次数

大图:约2000万个样本,千兆字节的数据

我在这里遇到了一个问题(我的RAM):它无法保存我想要绘制的数据.我确实有足够的高清空间.是否有任何解决方案可以避免我的数据集"阴影"?

具体而言,我处理数字信号处理,我必须使用高采样率.我的框架(GNU Radio)以二进制形式保存值(以避免使用太多的磁盘空间).我打开包装.之后我需要策划.我需要可缩放的图和交互式.这是一个问题.

是否有任何优化潜力,或其他软件/编程语言(如R左右)可以处理更大的数据集?实际上我想在我的情节中获得更多数据.但我没有其他软件的经验.GNUplot失败,采用与以下类似的方法.我不知道R(喷射).

import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import struct

"""
plots a cfile

cfile - IEEE single-precision (4-byte) floats, IQ pairs, binary
txt - index,in-phase,quadrature in plaintext

note: directly plotting with numpy results into shadowed functions
"""

# unpacking the cfile dataset
def unpack_set(input_filename, output_filename):
    index = 0   # index of the samples
    output_filename = open(output_filename, 'wb')

    with open(input_filename, "rb") as f:

        byte = f.read(4)    # read 1. column of the vector

        while byte != …
Run Code Online (Sandbox Code Playgroud)

python performance matplotlib scientific-computing

66
推荐指数
5
解决办法
6万
查看次数

编写健壮的"现代"Fortran代码

在一些科学环境中,你经常离不开FORTRAN,因为大多数开发人员只知道这个习语,并且有很多遗留代码和相关经验.坦率地说,高性能编程没有很多其他跨平台选项(C++可以完成任务,但语法,零启动数组和指针与某些人不兼容).

所以,让我们假设一个新项目,必须使用Fortran 90的,但我想建立最先进的软件架构出来的,同时与最新的编译器兼容(英特尔ifort,而且还包括Sun/HP/IBM编译)

所以我想要强加一些众所周知的常识,但在我的环境中还不是标准:

  • 全局变量禁止,没有getos,没有跳转标签implicit none
  • "面向对象编程"(具有数据类型和相关子例程的模块)
  • 模块化/可重用的功能,文档齐全,可重用的库
  • 断言/前提条件/不变量(使用预处理程序语句实现)
  • 所有(大多数)子程序和"对象"的单元测试
  • 一个强烈的"调试模式"(#ifdef DEBUG),带有更多检查和所有可能的英特尔编译器检查(数组边界,子程序接口等)
  • 统一和强制清晰的编码风格,使用代码处理工具助手.

所有这一切的目标是拥有值得信赖,可维护和模块化的代码.然而,在许多遗留代码中,可重用性不是一个重要的目标.

我四处搜寻有关面向对象的Fortran编程契约式引用(断言/前提条件的/ etc.),发现只有丑陋的和过时的文件,通过人与没有大规模参与项目进行语法和文章,和死了的项目.

有关此主题的任何好的URL,建议,参考文件/书籍?

oop fortran scientific-computing assertions fortran90

63
推荐指数
5
解决办法
1万
查看次数

用C#绘图

C#似乎显示了科学计算的一些希望,但我发现很少关于绘制二维图形,这对科学学生和科学家来说都非常重要.

有没有一种可靠,免费的方法来用C#创建出版质量的2D图?并且能够保存为多种格式(png,eps,...).类似于Python的matplotlib?

c# plot scientific-computing

56
推荐指数
4
解决办法
9万
查看次数

科学程序员的阅读清单

我正努力成为一名科学程序员.我有足够的数学和统计学背景,但缺乏编程背景.我发现学习如何使用语言进行科学编程非常困难,因为SP的大部分参考都是微不足道的.

我的工作涉及统计/财务建模,没有物理模型.目前,我广泛使用Python与numpy和scipy.完成R/Mathematica.我知道足够的C/C++来读取代码.没有Fortran的经验.

我不知道这对于科学程序员来说是否是一个很好的语言列表.如果是这样,那么在科学环境中学习这些语言的语法设计模式的阅读清单是什么.

c c++ fortran scientific-computing

45
推荐指数
6
解决办法
1万
查看次数

python/numpy中的多线程blas

我试图在Python中实现大量的矩阵 - 矩阵乘法.最初,我假设NumPy将自动使用我的线程BLAS库,因为我是针对这些库构建的.但是,当我查看顶部或其他内容时,似乎代码根本不使用线程.

任何想法是什么错误或我可以做些什么来轻松使用BLAS性能?

python numpy scientific-computing blas

45
推荐指数
2
解决办法
3万
查看次数

43
推荐指数
2
解决办法
3万
查看次数