{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8a143a5b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[2 6 7]\n",
      " [2 3 6]\n",
      " [2 3 4]]\n",
      "[7 6 4]\n",
      "True\n",
      "False\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "# 创建示例数组\n",
    "arr = np.array([[6, 2, 7],\n",
    "                [3, 6, 2],\n",
    "                [4, 3, 2]])\n",
    "# 按行排序（默认 axis=1，对每一行内部元素排序）\n",
    "arr.sort()\n",
    "\n",
    "# 输出结果\n",
    "print(arr)\n",
    "#任务2.2 基于刚才的数据，把每一行最大值提取出来.？？\n",
    "print(arr[:,-1])\n",
    "##任务2.3 按列排序\n",
    "arr.sort(axis = 0)\n",
    "arr\n",
    "##任务2.3.2  取出现在每一列最大值？\n",
    "arr[-1]\n",
    "##任务3 数组检索\n",
    "print(np.any(arr > 4))\n",
    "print(np.all(arr > 4))\n",
    "###任务3.1  判断第一行是否都大于4？？\n",
    "print(np.all(arr[0] > 4))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "1cb99984",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 550  700  620  800]\n",
      " [ 430  500  480  550]\n",
      " [ 900  850  950 1000]\n",
      " [ 720  680  710  690]\n",
      " [ 620  580  600  650]\n",
      " [ 800  750  780  820]]\n",
      "[ 800  550 1000  720  650  820]\n",
      "[2670 1960 3700 2800 2450 3150]\n",
      "True\n",
      "[ 850  900  950 1000]\n"
     ]
    }
   ],
   "source": [
    "#任务：分店销售数据汇总\n",
    "##第一步：创建二维数组\n",
    "import numpy as np\n",
    "\n",
    "# 从表格中提取的 6 行 4 列数据\n",
    "data = [\n",
    "    [550, 700, 620, 800],\n",
    "    [430, 500, 480, 550],\n",
    "    [900, 850, 950, 1000],\n",
    "    [720, 680, 710, 690],\n",
    "    [620, 580, 600, 650],\n",
    "    [800, 750, 780, 820]\n",
    "]# 转换为 NumPy 数组\n",
    "arr = np.array(data)  # 打印数组查看结果\n",
    "print(arr)\n",
    "\n",
    "#第二步：计算每个门店最多的销售量。\n",
    "###思路：按行排序，取最后一列\n",
    "arr.sort()\n",
    "print(arr[:,-1])\n",
    "\n",
    "#第三步：计算每个门店的总销售量。  \n",
    "###思路：按行求和\n",
    "print(arr.sum(axis=1))\n",
    "\n",
    "#第四步：检查每个销售量是否都在合理的范围内\n",
    "print(np.all((arr>=0) & (arr <=2000)))\n",
    "##第五步：求出每个季度销售量最多的门店名称？？\n",
    "###思路：先求出每一列最大值，然后找出哪一行是这个值。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "839245a2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 900  850  950 1000]\n",
      "3 <<<<---门店\n"
     ]
    }
   ],
   "source": [
    "\n",
    "import numpy as np\n",
    "\n",
    "# 从表格中提取的 6 行 4 列数据\n",
    "data = [\n",
    "    [550, 700, 620, 800],\n",
    "    [430, 500, 480, 550],\n",
    "    [900, 850, 950, 1000],\n",
    "    [720, 680, 710, 690],\n",
    "    [620, 580, 600, 650],\n",
    "    [800, 750, 780, 820]\n",
    "]# 转换为 NumPy 数组\n",
    "arr = np.array(data)  # 打印数组查看结果\n",
    "print(arr.max(axis=0))\n",
    "b = (arr[:,0]==900)\n",
    "for i in range(6):\n",
    "    if b[i] == True:\n",
    "        print(i+1,\"<<<<---门店\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "9d457219",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 8 11 12 23 34]\n",
      "[['舞蹈' '钢琴' '武术']\n",
      " ['绘画' '舞蹈' '游泳']\n",
      " ['游泳' '舞蹈' '轮滑']\n",
      " ['轮滑' '绘画' '武术']\n",
      " ['外语' '声乐' '绘画']\n",
      " ['游泳' '外语' '钢琴']\n",
      " ['篮球' '钢琴' '声乐']\n",
      " ['轮滑' '篮球' '绘画']]\n",
      "['舞蹈' '钢琴' '武术' '绘画' '舞蹈' '游泳' '游泳' '舞蹈' '轮滑' '轮滑' '绘画' '武术' '外语' '声乐'\n",
      " '绘画' '游泳' '外语' '钢琴' '篮球' '钢琴' '声乐' '轮滑' '篮球' '绘画']\n",
      "(array(['声乐', '外语', '武术', '游泳', '篮球', '绘画', '舞蹈', '轮滑', '钢琴'], dtype='<U2'), array([2, 2, 2, 3, 2, 4, 3, 3, 3], dtype=int64))\n"
     ]
    }
   ],
   "source": [
    "#任务2-8\n",
    "#第一：先把右边这个图转为代码，然后运行。\n",
    "arr = np.array([12, 11, 34, 23, 12, 8, 11])\n",
    "print(np.unique (arr))\n",
    "np.unique(arr, return_index = True)\n",
    "#第二：多维数组转为一维数组\n",
    "arr = np.array([[1, 2, 3], [4, 5, 6]])\n",
    "flattened_arr = arr.flatten()\n",
    "flattened_arr\n",
    "#第三：完成任务\n",
    "###步骤1：转为numpy数组\n",
    "import numpy as np\n",
    "\n",
    "# 从表格中提取的 8 行 3 列兴趣班数据\n",
    "data = [\n",
    "    [\"舞蹈\", \"钢琴\", \"武术\"],\n",
    "    [\"绘画\", \"舞蹈\", \"游泳\"],\n",
    "    [\"游泳\", \"舞蹈\", \"轮滑\"],\n",
    "    [\"轮滑\", \"绘画\", \"武术\"],\n",
    "    [\"外语\", \"声乐\", \"绘画\"],\n",
    "    [\"游泳\", \"外语\", \"钢琴\"],\n",
    "    [\"篮球\", \"钢琴\", \"声乐\"],\n",
    "    [\"轮滑\", \"篮球\", \"绘画\"]\n",
    "]\n",
    "# 转换为 NumPy 数组\n",
    "arr = np.array(data)\n",
    "\n",
    "# 打印数组查看结果\n",
    "print(arr)\n",
    "###步骤2：提取所有兴趣班\n",
    "arr1 = arr.flatten()\n",
    "print(arr1)\n",
    "###步骤3：统计各兴趣班人数\n",
    "bcf_arr1 =  np.unique(arr1,return_counts=True)\n",
    "print(bcf_arr1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ba47755f",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
