python numpy 基础【1】

import numpy as np
a = np.arange(15).reshape(3, 5)
a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
a.shape
(3, 5)
a.ndim
2
a.dtype.name
'int64'
a.itemsize
8
a.size
15
type(a)
<class 'numpy.ndarray'>
b = np.array([6, 7, 8])
b
array([6, 7, 8])
type(b)
<class 'numpy.ndarray'>

c = np.array([[1, 2], [3, 4]], dtype=complex)
>>> c
array([[1.+0.j, 2.+0.j],
       [3.+0.j, 4.+0.j]])
>> np.zeros((3, 4))
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])
>>> np.ones((2, 3, 4), dtype=np.int16)
array([[[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]],

       [[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]], dtype=int16)
>>> np.empty((2, 3))
array([[3.73603959e-262, 6.02658058e-154, 6.55490914e-260],  # may vary
       [5.30498948e-313, 3.14673309e-307, 1.00000000e+000]])
 np.arange(10, 30, 5)
array([10, 15, 20, 25])
>>> np.arange(0, 2, 0.3)  # it accepts float arguments
array([0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
>>> from numpy import pi
>>> np.linspace(0, 2, 9)                   # 9 numbers from 0 to 2
array([0.  , 0.25, 0.5 , 0.75, 1.  , 1.25, 1.5 , 1.75, 2.  ])
>>> x = np.linspace(0, 2 * pi, 100)        # useful to evaluate function at lots of points
>>> f = np.sin(x)
>>> a = np.array([20, 30, 40, 50])
>>> b = np.arange(4)
>>> b
array([0, 1, 2, 3])
>>> c = a - b
>>> c
array([20, 29, 38, 47])
>>> b**2
array([0, 1, 4, 9])
>>> 10 * np.sin(a)
array([ 9.12945251, -9.88031624,  7.4511316 , -2.62374854])
>>> a < 35
array([ True,  True, False, False])

>>> A = np.array([[1, 1],
...               [0, 1]])
>>> B = np.array([[2, 0],
...               [3, 4]])
>>> A * B     # elementwise product
array([[2, 0],
       [0, 4]])
>>> A @ B     # matrix product
array([[5, 4],
       [3, 4]])
>>> A.dot(B)  # another matrix product
array([[5, 4],
       [3, 4]])
>>> rg = np.random.default_rng(1)  # create instance of default random number generator
>>> a = np.ones((2, 3), dtype=int)
>>> b = rg.random((2, 3))
>>> a *= 3
>>> a
array([[3, 3, 3],
       [3, 3, 3]])
>>> b += a
>>> b
array([[3.51182162, 3.9504637 , 3.14415961],
       [3.94864945, 3.31183145, 3.42332645]])
>>> a += b  # b is not automatically converted to integer type
Traceback (most recent call last):
    ...
numpy.core._exceptions._UFuncOutputCastingError: Cannot cast ufunc 'add' output from dtype('float64') to dtype('int64') with casting rule 'same_kind'
>>> b = np.arange(12).reshape(3, 4)
>>> b
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>>
>>> b.sum(axis=0)     # sum of each column
array([12, 15, 18, 21])
>>>
>>> b.min(axis=1)     # min of each row
array([0, 4, 8])
>>>
>>> b.cumsum(axis=1)  # cumulative sum along each row
array([[ 0,  1,  3,  6],
       [ 4,  9, 15, 22],
       [ 8, 17, 27, 38]])

>>> B = np.arange(3)
>>> B
array([0, 1, 2])
>>> np.exp(B)
array([1.        , 2.71828183, 7.3890561 ])
>>> np.sqrt(B)
array([0.        , 1.        , 1.41421356])
>>> C = np.array([2., -1., 4.])
>>> np.add(B, C)
array([2., 0., 6.])
### Python Numpy 基础教程入门指南 #### 导入Numpy库并验证安装 为了开始使用 NumPy,首先需要将其导入到工作环境中。可以利用如下代码片段完成这一过程: ```python import numpy as np print(np.__version__) ``` 这段代码不仅会加载 NumPy 库以便后续调用其功能函数,还会打印当前使用的 NumPy 版本号[^1]。 #### 创建数组 NumPy 的核心对象是多维数组 `ndarray`。创建一个简单的 NumPy 数组可以通过多种方式实现: ```python # 使用列表创建一维数组 a = np.array([1, 2, 3]) print(a) # 创建二维数组 b = np.array([[1, 2], [3, 4]]) print(b) ``` 这些例子展示了如何基于现有的 Python 列表结构快速构建新的 NumPy 数组实例[^4]。 #### 查看数组属性 一旦有了数组之后,就可以查询有关该数组的一些基本信息,比如形状(shape),维度(dimension)等: ```python c = np.array([[1, 2, 3], [4, 5, 6]]) # 输出数组的形状 (rows, columns) print(c.shape) # 获取数组的数据类型 print(c.dtype.name) # 访问特定位置上的元素 c[row][column] print(c[0, 1]) ``` 上述命令可以帮助理解所创建数组的具体特征及其内部存储模式。 #### 执行基本运算 除了作为静态数据容器外,NumPy 还支持高效的数值计算操作,例如加法、乘法以及其他更复杂的线性代数变换: ```python d = np.arange(6).reshape((2, 3)) e = d * 2 + 1 f = e.sum(axis=0) print(f"d:\n{d}") print(f"e after multiply by 2 and add 1:\n{e}") print(f"f sum along axis 0:\n{f}") ``` 这里展示了一些常见的算术运算符的应用场景以及沿指定轴求和的方法。 #### 随机数生成 随机抽样也是科学研究中不可或缺的一部分,在这方面 NumPy 提供了一系列便捷实用的功能接口: ```python g = np.random.rand(3, 3) # 从均匀分布中抽取样本填充矩阵 h = np.random.randn(3, 3) # 从标准正态分布中抽取样本填充矩阵 i = np.random.randint(0, 10, size=(2, 2)) # 整型随机整数 print(g) print(h) print(i) ``` 以上代码段分别演示了三种不同类型的伪随机数发生器的工作原理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值