Skip to content

Instantly share code, notes, and snippets.

@pfsq
Created March 13, 2014 09:58
Show Gist options
  • Save pfsq/9525423 to your computer and use it in GitHub Desktop.
Save pfsq/9525423 to your computer and use it in GitHub Desktop.
iPython Notebooks
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Despu\u00e9s de importar Numpy extraemos los datos del archivo que hemos exportado de STAR-CCM+:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data = np.genfromtxt('Drag report.csv',\n",
" dtype=float,\n",
" delimiter=',',\n",
" names=True)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data.dtype.names"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"('Iteration_Iteration', 'Drag_Force_Coefficient')"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nos quedamos con las 3000 \u00faltimas iteraciones."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"drag = data[data.dtype.names[1]][-3000:]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Obtenemos el valor m\u00e1ximo, el m\u00ednimo y la media:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"np.max(drag)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": [
"0.37309515224949907"
]
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"np.min(drag)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 14,
"text": [
"0.31619330461407386"
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"np.mean(drag)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 15,
"text": [
"0.34351105987568487"
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Otra forma de afrontar el problema es obtener el \u00faltimo m\u00e1ximo y m\u00ednimo local. Para ello necesitamos importar un paquete de Scipy (ver http://stackoverflow.com/questions/4624970/finding-local-maxima-minima-with-numpy-in-a-1d-numpy-array)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from scipy.signal import argrelextrema"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"lmax = argrelextrema(drag, np.greater)\n",
"lmin = argrelextrema(drag, np.less)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lo que obtenemos son \u00edndices. Pero veamos c\u00f3mo nos los presenta."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(lmin)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"(array([ 117, 244, 371, 497, 624, 751, 878, 1004, 1131, 1258, 1384,\n",
" 1511, 1638, 1765, 1891, 2018, 2145, 2271, 2398, 2525, 2651, 2778,\n",
" 2905], dtype=int64),)\n"
]
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Como podemos observar, el array est\u00e1 dentro de una tupla. Por tanto, si queremos obtener el \u00faltimos m\u00ednimos y m\u00e1ximos locales deberemos escribir `lmin[0][-1]` y `lmax[0][-1]`."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"np.mean(drag[lmin[0][-1]:lmax[0][-1]])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 27,
"text": [
"0.34290937463108467"
]
}
],
"prompt_number": 27
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment