{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import julia \n", "import numpy as np\n", "# as jl\n", "# jl.install()\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# !pip install julia\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "julia.install()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from julia.api import Julia" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "jl = Julia(compiled_modules=False)\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import julia" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "j = julia.Julia()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/amiraabdel-rahman/opt/anaconda3/lib/python3.7/site-packages/julia/core.py:691: FutureWarning: Accessing `Julia().<name>` to obtain Julia objects is deprecated. Use `from julia import Main; Main.<name>` or `jl = Julia(); jl.eval('<name>')`.\n", " FutureWarning,\n" ] } ], "source": [ "fn = j.include('test.jl')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "x = np.array([[1,2,3], [4,5,6]], dtype=np.float64)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 2., 3.],\n", " [4., 5., 6.]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 2., 4., 6.],\n", " [ 8., 10., 12.]])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fn(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Steps" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import julia\n", "from julia.api import Julia\n", "jl = Julia(compiled_modules=False)\n", "from julia import Main" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<PyCall.jlwrap dataPlotTest>" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Main.include(\"script.jl\")" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1 8 27]\n", " [ 64 125 216]]\n" ] } ], "source": [ "x= np.array([[1,2,3],[4,5,6]])\n", "print(Main.testFunc01(x, x,x))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "y= np.array([1,2,5,5,3,4,5,6,8,7,6,8])\n", "Main.dataPlotTest(y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Test frep julia" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "import math as Math\n", "import matplotlib\n", "matplotlib.use(\"Agg\")\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<PyCall.jlwrap lossFunction>" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Main.include(\"frep_julia.jl\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "resolution=32\n", "target=Main.circle(resolution, 1,False)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "matplotlib.image.imsave(\"./target_python.png\", target.reshape(resolution,resolution))" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-1. , -0.87513007, -0.75858481, ..., -0.75858481,\n", " -0.87513007, -1. ])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "target" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Test rover julia" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import julia\n", "from julia.api import Julia\n", "jl = Julia(compiled_modules=False)\n", "from julia import Main" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "Main.include(\"./initRover.jl\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "ename": "ImportError", "evalue": "<PyCall.jlwrap (in a Julia function called from Python)\nJULIA: LoadError: SystemError: opening file \"../json/tutorial.json\": No such file or directory\nStacktrace:\n [1] systemerror(::String, ::Int32; extrainfo::Nothing) at .\\error.jl:168\n [2] #systemerror#48 at .\\error.jl:167 [inlined]\n [3] systemerror at .\\error.jl:167 [inlined]\n [4] open(::String; lock::Bool, read::Bool, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing) at .\\iostream.jl:284\n [5] open(::String, ::String; lock::Bool) at .\\iostream.jl:346\n [6] open(::String, ::String) at .\\iostream.jl:346\n [7] open(::var\"#33#34\", ::String, ::Vararg{String,N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at .\\io.jl:323\n [8] open at .\\io.jl:323 [inlined]\n [9] getSetupFullPath(::String) at C:\\Users\\amira\\Dropbox (MIT)\\CBA\\MetaVoxels\\metavoxels-code\\julia\\include\\export.jl:177\n [10] top-level scope at C:\\Users\\amira\\Dropbox (MIT)\\CBA\\MetaVoxels\\metavoxels-code\\WANN\\julia\\runRover.jl:25\n [11] include(::String) at .\\client.jl:457\n [12] #invokelatest#1 at .\\essentials.jl:710 [inlined]\n [13] invokelatest(::Any, ::Any) at .\\essentials.jl:709\n [14] _pyjlwrap_call(::Function, ::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}) at C:\\Users\\amira\\.julia\\packages\\PyCall\\BcTLp\\src\\callback.jl:28\n [15] pyjlwrap_call(::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}) at C:\\Users\\amira\\.julia\\packages\\PyCall\\BcTLp\\src\\callback.jl:49\nin expression starting at C:\\Users\\amira\\Dropbox (MIT)\\CBA\\MetaVoxels\\metavoxels-code\\WANN\\julia\\runRover.jl:25>", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m<ipython-input-3-03f024c8456f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mMain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minclude\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"./runRover.jl\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mImportError\u001b[0m: <PyCall.jlwrap (in a Julia function called from Python)\nJULIA: LoadError: SystemError: opening file \"../json/tutorial.json\": No such file or directory\nStacktrace:\n [1] systemerror(::String, ::Int32; extrainfo::Nothing) at .\\error.jl:168\n [2] #systemerror#48 at .\\error.jl:167 [inlined]\n [3] systemerror at .\\error.jl:167 [inlined]\n [4] open(::String; lock::Bool, read::Bool, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing) at .\\iostream.jl:284\n [5] open(::String, ::String; lock::Bool) at .\\iostream.jl:346\n [6] open(::String, ::String) at .\\iostream.jl:346\n [7] open(::var\"#33#34\", ::String, ::Vararg{String,N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at .\\io.jl:323\n [8] open at .\\io.jl:323 [inlined]\n [9] getSetupFullPath(::String) at C:\\Users\\amira\\Dropbox (MIT)\\CBA\\MetaVoxels\\metavoxels-code\\julia\\include\\export.jl:177\n [10] top-level scope at C:\\Users\\amira\\Dropbox (MIT)\\CBA\\MetaVoxels\\metavoxels-code\\WANN\\julia\\runRover.jl:25\n [11] include(::String) at .\\client.jl:457\n [12] #invokelatest#1 at .\\essentials.jl:710 [inlined]\n [13] invokelatest(::Any, ::Any) at .\\essentials.jl:709\n [14] _pyjlwrap_call(::Function, ::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}) at C:\\Users\\amira\\.julia\\packages\\PyCall\\BcTLp\\src\\callback.jl:28\n [15] pyjlwrap_call(::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}) at C:\\Users\\amira\\.julia\\packages\\PyCall\\BcTLp\\src\\callback.jl:49\nin expression starting at C:\\Users\\amira\\Dropbox (MIT)\\CBA\\MetaVoxels\\metavoxels-code\\WANN\\julia\\runRover.jl:25>" ] } ], "source": [ "Main.include(\"./runRover.jl\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Main.target" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Main.habal(4)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<PyCall.jlwrap habal>" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Main.eval(\"function habal(x)\\nreturn 4*x;\\nend\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Main.habal(4)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.49999753260092894" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Main.externalForce(1,Main.Vector3(0,0,0),Main.Vector3(0,0,1)).y" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "y=list(range(0, 10000))\n", "z=list(range(0, 10000))\n", "for currentTimeStep in range(0, 10000):\n", " y[currentTimeStep]=Main.externalForce(currentTimeStep+1,Main.Vector3(0,0,0),Main.Vector3(0,0,1)).y\n", " z[currentTimeStep]=Main.externalForce(currentTimeStep+1,Main.Vector3(0,0,0),Main.Vector3(0,0,1)).z\n", " " ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max(y)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max(z)" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.000e+00],\n", " [1.000e-04],\n", " [2.000e-04],\n", " ...,\n", " [9.998e-01],\n", " [9.999e-01],\n", " [1.000e+00]])" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ " np.array([np.linspace(0,1.0, 10001)]).T\n" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.00000e+00],\n", " [1.00001e-05],\n", " [2.00002e-05],\n", " ...,\n", " [9.99980e-01],\n", " [9.99990e-01],\n", " [1.00000e+00]])" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.array([np.linspace(0,1.0, 100000)]).T" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "strY+=str(M)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "strY=\"[\"\n", "strZ=\"[\"\n", "strY+=str(y[0])\n", "strZ+=str(z[0])\n", "for i in range(1, 10000):\n", " strY+=\",\"\n", " strZ+=\",\"\n", " strY+=str(y[i])\n", " strZ+=str(z[i])\n", "strY+=\"]\"\n", "strZ+=\"]\" " ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<PyCall.jlwrap externalForce>" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Main.eval(\"function externalForce(currentTimeStep,N_position,N_force)\\n strY=\"+strY+\";\\n strZ=\"+strZ+\";\\n if (convert(Float64,N_force.z)>0.0) \\n z=strZ[currentTimeStep+1];\\n y=strY[currentTimeStep+1];\\n if (convert(Float64,N_force.z)>1.5) \\n z=-z;\\n y=-y;\\nend\\nreturn Vector3(0.0,y,z);\\n else\\n return Vector3(0.0,0.0,0.0);\\n end\\n end\")\n" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "runMetaVoxels", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m<ipython-input-58-0a0161835a57>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mMain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msetupSim\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mMain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgetSetupFullPath\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m;\u001b[0m \u001b[1;31m#get simulation\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[0mMain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrunMetaVoxels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mMain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msetupSim\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0msavedDataFolderPath\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\"CPU\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32mc:\\users\\amira\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\julia\\core.py\u001b[0m in \u001b[0;36m__getattr__\u001b[1;34m(self, name)\u001b[0m\n\u001b[0;32m 174\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__getattr__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 175\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 176\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__try_getattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 177\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 178\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mendswith\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"_b\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mc:\\users\\amira\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\julia\\core.py\u001b[0m in \u001b[0;36m__try_getattr\u001b[1;34m(self, name)\u001b[0m\n\u001b[0;32m 197\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_julia\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0meval\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mjl_fullname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 198\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 199\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 200\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 201\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mAttributeError\u001b[0m: runMetaVoxels" ] } ], "source": [ "simName=\"tutorial\"\n", "savedDataFolderPath=\"../../json/\"+simName+\"/\" # make sure this folder exists, this is where the simulation result will be saved\n", "path=\"../../json/\"+simName+\".json\"\n", "\n", "Main.setupSim=Main.getSetupFullPath(path); #get simulation \n", "Main.runMetaVoxels(Main.setupSim,savedDataFolderPath,\"CPU\");" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'../../json/tutorial.json'" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [], "source": [ "m=np.array([np.linspace(0,10-1, 10)]).T" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "def pixelGrid(resolution=64):\n", " x = np.linspace(-1,1, resolution)\n", " X,Y = np.meshgrid(x,x)\n", " return np.vstack([X.flatten(),Y.flatten()]).T" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "P=pixelGrid(32).shape" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "tuple indices must be integers or slices, not tuple", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m<ipython-input-84-68f53859d825>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mP\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mTypeError\u001b[0m: tuple indices must be integers or slices, not tuple" ] } ], "source": [ "P[1:5,0]" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "x = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 5, 6],\n", " [ 9, 10]])" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[1:3, 0:2]\n" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10, 1)" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1.],\n", " [2.],\n", " [3.],\n", " [4.]])" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m[1:5]" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "object too deep for desired array", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m<ipython-input-94-e8f43e8d8fa1>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mm\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0minterp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mmax\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m0.5\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0.5\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32mc:\\users\\amira\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\numpy\\lib\\function_base.py\u001b[0m in \u001b[0;36minterp\u001b[1;34m(x, xp, fp, left, right, period)\u001b[0m\n\u001b[0;32m 1410\u001b[0m \u001b[0mfp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfp\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfp\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1411\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1412\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0minterp_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mxp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mleft\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mright\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1413\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1414\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: object too deep for desired array" ] } ], "source": [ "m=interp(m,[min(m),max(m)],[-0.5,0.5])" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "from numpy import interp\n" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [], "source": [ "def maprange(a, b, s):\n", " (a1, a2), (b1, b2) = a, b\n", " return b1 + ((s - a1) * (b2 - b1) / (a2 - a1))" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [], "source": [ "m=maprange((min(m),max(m)),(-0.5,0.5), m)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.26237485, 0.95375265, 0.76825466, -0.12357312, -0.90178835,\n", " -0.85090352, -0.01770193, 0.83177474, 0.91652155, 0.15862267,\n", " -0.74511316, -0.96379539, -0.29636858, 0.64353813, 0.99177885,\n", " 0.42818267, -0.52908269, -0.99991186, -0.55142668, 0.40403765,\n", " 0.98803162, 0.66363388, -0.27090579, -0.95637593, -0.76255845,\n", " 0.13235175, 0.90557836, 0.8462204 , 0.00885131, -0.83665564,\n", " -0.91294525, -0.14987721, 0.75098725, 0.96139749, 0.28790332,\n", " -0.65028784, -0.99060736, -0.42016704, 0.53657292, 0.99999021,\n", " 0.54402111, -0.41211849, -0.98935825, -0.6569866 , 0.2794155 ,\n", " 0.95892427, 0.7568025 , -0.14112001, -0.90929743, -0.84147098,\n", " 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ,\n", " -0.95892427, -0.2794155 , 0.6569866 , 0.98935825, 0.41211849,\n", " -0.54402111, -0.99999021, -0.53657292, 0.42016704, 0.99060736,\n", " 0.65028784, -0.28790332, -0.96139749, -0.75098725, 0.14987721,\n", " 0.91294525, 0.83665564, -0.00885131, -0.8462204 , -0.90557836,\n", " -0.13235175, 0.76255845, 0.95637593, 0.27090579, -0.66363388,\n", " -0.98803162, -0.40403765, 0.55142668, 0.99991186, 0.52908269,\n", " -0.42818267, -0.99177885, -0.64353813, 0.29636858, 0.96379539,\n", " 0.74511316, -0.15862267, -0.91652155, -0.83177474, 0.01770193,\n", " 0.85090352, 0.90178835, 0.12357312, -0.76825466, -0.95375265]])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sin(np.array([np.linspace(0,100-1, 100)])-100/2.0)" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [], "source": [ "x = y = z = np.arange(0.0,5.0,1.0)\n", "# np.savetxt('test.out', x, delimiter=',',newline=',') # X is an array\n", "np.savetxt('test.csv', (x,y,z)) # x,y,z equal sized 1D arrays\n", "# np.savetxt('test.out', x, fmt='%1.4e') # use exponential notation" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "z = np.arange(0.0,10.0,1.0)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10,)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z.shape" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "m=np.reshape(z,(5,2))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1., 3., 5., 7., 9.])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m[:,1]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "ename": "IndexError", "evalue": "index 2 is out of bounds for axis 1 with size 2", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m<ipython-input-17-cd00256ee3bc>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mm\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mIndexError\u001b[0m: index 2 is out of bounds for axis 1 with size 2" ] } ], "source": [ "m[:,2]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2" } }, "nbformat": 4, "nbformat_minor": 2 }