{
"cells": [
{
"cell_type": "markdown",
"source": [
"# 数组基础"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 35,
"outputs": [],
"source": [
"import numpy as np"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 36,
"outputs": [],
"source": [
"# 设置随机数种子\n",
"np.random.seed(0);\n",
"# 一维数组\n",
"array1=np.array([0, 1, 2, 3, 4, 5]);\n",
"# 二维数组\n",
"array2=np.array([[0, 1, 2, 3, 4, 5], [10, 11, 12, 13, 14, 15]]);"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## 数组的属性"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 37,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"array1维度: 1\n",
"array2维度: 2\n",
"array1每个维度大小: (6,)\n",
"array2每个维度大小: (2, 6)\n",
"array1数组的总大小: 6\n",
"array2数组的总大小: 12\n"
]
}
],
"source": [
"# 数组的维度\n",
"print(\"array1维度:\", array1.ndim);\n",
"print(\"array2维度:\", array2.ndim);\n",
"# 数组的每个维度的大小\n",
"print(\"array1每个维度大小:\", array1.shape);\n",
"print(\"array2每个维度大小:\", array2.shape);\n",
"# 数组的总大小\n",
"print(\"array1数组的总大小:\", array1.size);\n",
"print(\"array2数组的总大小:\", array2.size);"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## 数组索引:获取单个元素"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 38,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 1 2 3 4 5]\n",
"1\n",
"5\n"
]
}
],
"source": [
"print(array1);\n",
"# 正数索引表示从左往右数,从0开始\n",
"print(array1[1]);\n",
"# 负数索引表示从右往左数\n",
"print(array1[-1]);"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## 数组切片:获取子数组"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 39,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 1 2 3 4 5]\n",
"array1[0:4:2]: [0 2]\n",
"array1[:3]: [0 1 2]\n",
"array1[3:]: [3 4 5]\n",
"array1[::2]: [0 2 4]\n"
]
}
],
"source": [
"print(array1);\n",
"# 数组切片遵循 array[开始索引:结束索引:步长]的模式\n",
"# 索引0到4之间的元素,并且每2个元素取一个\n",
"print(\"array1[0:4:2]: \", array1[0:4:2]);\n",
"# 前3个元素\n",
"print(\"array1[:3]: \", array1[:3]);\n",
"# 索引3之后的元素\n",
"print(\"array1[3:]: \", array1[3:]);\n",
"# 间隔一个元素\n",
"print(\"array1[::2]: \", array1[::2]);"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 40,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0 1 2 3 4 5]\n",
" [10 11 12 13 14 15]]\n",
"array2[:2, :3]\n",
"[[ 0 1 2]\n",
" [10 11 12]]\n"
]
}
],
"source": [
"print(array2);\n",
"# 两行,三列\n",
"print(\"array2[:2, :3]\");\n",
"print(array2[:2, :3]);"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## 数组的拼接与分割"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 46,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1 2 3 4 5 6 7 8 9]\n"
]
}
],
"source": [
"# 3个数组拼接成1个数组\n",
"array3=np.array([1, 2, 3]);\n",
"array4=np.array([4, 5, 6]);\n",
"array5=np.array([7, 8, 9]);\n",
"array6=np.concatenate([array3, array4, array5]);\n",
"print(array6);"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 47,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1 2 3] [4 5 6] [7 8 9]\n"
]
}
],
"source": [
"# 1个数组分割成3个数组\n",
"array7, array8, array9 = np.split(array6, [3, 6]);\n",
"print(array7, array8, array9);"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [],
"metadata": {
"collapsed": false
}
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}