{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 数组与字符串的转换" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## tostring 方法" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a = np.array([[1,2],\n", " [3,4]], \n", " dtype = np.uint8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "转化为字符串:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "'\\x01\\x02\\x03\\x04'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.tostring()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "我们可以使用不同的顺序来转换字符串:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'\\x01\\x03\\x02\\x04'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.tostring(order='F')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "这里使用了**Fortran**的格式,按照列来读数据。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## fromstring 函数" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "可以使用 `fromstring` 函数从字符串中读出数据,不过要指定类型:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3, 4], dtype=uint8)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = a.tostring()\n", "a = np.fromstring(s, \n", " dtype=np.uint8)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "此时,返回的数组是一维的,需要重新设定维度:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[1, 2],\n", " [3, 4]], dtype=uint8)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.shape = 2,2\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "对于文本文件,推荐使用\n", "- `loadtxt`\n", "- `genfromtxt`\n", "- `savetxt`\n", "\n", "对于二进制文本文件,推荐使用 \n", "- `save` \n", "- `load`\n", "- `savez`" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }