TODO
Numpy vs MATLAB
由于同时使用MATLAB和Numpy,它们之间有很多细微的区别,有必要梳理一下,主要参考官方文档:numpy-for-matlab-users。
Author: Fenglielie
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

2025-03-22
Numpy 学习笔记——1. 基础
概述 TODO 1import numpy as np ndarray 介绍 np.ndarray (别名 np.array)是 Numpy 的核心数据类型,可以用于存储 n 维数组,并提供了大量相关操作方法。 它与 Python 的 list 类型类似,但是只能存储同类型数据,并且尺寸是固定且规则的,即不允许各个元素长短不一的数组。 与 list 不同,ndarray 的运算非常高效。 ndarray 也是很多 Python 科学计算库的核心类型所依赖的基础类型。 ndarray 需要注意的一些重要属性包括: ndarray.data: 数组的底层数据缓冲区,通常不需要直接操作。 尺寸信息: ndarray.shape: 数组的形状,包括每个维度的长度,例如(m,n)。 ndarray.ndim: 数组的维度个数。 ndarray.size: 数组的元素总个数。 类型信息: ndarray.dtype: 数组中元素的数据类型,默认通常为 float64; ndarray.itemsize: 数组中每个元素的大小,以字节为单位。 我们主要关注一维数组和二维数组,例如...

2023-12-18
Brainfuck语言与解释器
...

2024-05-14
Cpp和Python相互调用
记录一下在Cpp程序和Python脚本中相互调用的方法。 Cpp调用Python 在C++程序中调用Python解释器,包括执行简单Python语句(字符串形式),以及执行整个py脚本(文件形式)。 执行简单命令 最简单的例子:调用Python解释器,输出HelloWorld,C++源文件如下 main.cpp12345678910111213141516#ifdef _DEBUG#undef _DEBUG#include <Python.h>#define _DEBUG 1#else#include <Python.h>#endifint main() { Py_Initialize(); PyRun_SimpleString("print('Hello, world! (from Python)')"); Py_Finalize(); return...

2023-12-09
八皇后问题与回溯法
问题介绍 八皇后问题是以国际象棋为背景的经典问题: 如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?(皇后可以攻击与它处于同一条横行,纵列或者斜线上的其它棋子) 我们考虑的是一般化的\(n\times n\)的棋盘上放置\(n\)个皇后的问题(\(n > 1\)),理论分析表明当且仅当\(n \ge...

2023-12-17
遗传算法及Python实现
...

2023-12-09
Hanoi塔问题求解(递归与非递归算法)
Hanoi塔是经典的递归算法的应用,但是有意思的是我之前学习的算法或数据结构的课都漏掉了这个例子,补一下吧,包括两类三种算法实现。 问题介绍 Hanoi塔问题为:考虑三根杆子A,B,C,A杆上有 N 个 (N>1) 穿孔圆盘,圆盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至 C 杆: 每次只能移动一个圆盘; 大盘不能叠在小盘上面。 问:如何移动?最少要移动多少次? 递归分析 重点关注最大的圆盘,它是整个任务的核心:虽然它在最底层不会影响别的圆盘的操作,但是将它从A移动到C时,必然其他N-1个盘都处于B。 据此可以把问题分解为三个子任务: 将N-1个圆盘从A移动到B,此时C可以用作临时存放区 将最大的圆盘从A直接移动到C 将N-1个圆盘从B移动到C,此时A可以用作临时存放区(和第一步的任务是等价的) 记\(f(n)\)为n个圆盘时最少的移动次数,显然有初值\(f(1)=1\),以及递推关系 \[ f(n) = 1 + 2f(n-1) \]...
Comments
Contents