119 lines
2.8 KiB
Plaintext
119 lines
2.8 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"id": "initial_id",
|
|
"metadata": {
|
|
"collapsed": true,
|
|
"ExecuteTime": {
|
|
"end_time": "2025-03-12T14:46:19.236991Z",
|
|
"start_time": "2025-03-12T14:46:19.232966Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"keypad_matrix = np.array([[1, 2, 3],\n",
|
|
" [4, 5, 6],\n",
|
|
" [7, 8, 9]])"
|
|
],
|
|
"outputs": [],
|
|
"execution_count": 5
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-03-12T14:46:19.249251Z",
|
|
"start_time": "2025-03-12T14:46:19.244635Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"rng = np.random.default_rng()\n",
|
|
"\n",
|
|
"# Step 1: Get the matrix\n",
|
|
"keypad_view = keypad_matrix.copy() # Using copy to simulate self.keypad_matrix()\n",
|
|
"print(\"Original keypad_view:\")\n",
|
|
"print(keypad_view)\n",
|
|
"# Output:\n",
|
|
"# [[1 2 3]\n",
|
|
"# [4 5 6]\n",
|
|
"# [7 8 9]]\n",
|
|
"\n",
|
|
"# Step 2: Shuffle rows in place\n",
|
|
"rng.shuffle(keypad_view, axis=0)\n",
|
|
"print(\"After rng.shuffle(keypad_view, axis=0):\")\n",
|
|
"print(keypad_view)\n",
|
|
"# Output (rows shuffled):\n",
|
|
"# [[7 8 9]\n",
|
|
"# [1 2 3]\n",
|
|
"# [4 5 6]]\n",
|
|
"\n",
|
|
"# Step 3: Transpose\n",
|
|
"set_view = keypad_view.T\n",
|
|
"print(\"After set_view = keypad_view.T:\")\n",
|
|
"print(set_view)\n",
|
|
"# Output (rows become columns):\n",
|
|
"# [[7 1 4]\n",
|
|
"# [8 2 5]\n",
|
|
"# [9 3 6]]\n",
|
|
"\n",
|
|
"# Step 4: Shuffle each row independently\n",
|
|
"set_view = rng.permutation(set_view, axis=1)\n",
|
|
"print(\"After rng.permutation(set_view, axis=1):\")\n",
|
|
"print(set_view)\n",
|
|
"# Output (each row shuffled independently):\n",
|
|
"# [[4 1 7]\n",
|
|
"# [5 8 2]\n",
|
|
"# [3 6 9]]"
|
|
],
|
|
"id": "c7db73ce336d9f0a",
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Original keypad_view:\n",
|
|
"[[1 2 3]\n",
|
|
" [4 5 6]\n",
|
|
" [7 8 9]]\n",
|
|
"After rng.shuffle(keypad_view, axis=0):\n",
|
|
"[[7 8 9]\n",
|
|
" [1 2 3]\n",
|
|
" [4 5 6]]\n",
|
|
"After set_view = keypad_view.T:\n",
|
|
"[[7 1 4]\n",
|
|
" [8 2 5]\n",
|
|
" [9 3 6]]\n",
|
|
"After rng.permutation(set_view, axis=1):\n",
|
|
"[[4 7 1]\n",
|
|
" [5 8 2]\n",
|
|
" [6 9 3]]\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 6
|
|
}
|
|
],
|
|
"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": 5
|
|
}
|