【Python】Numpy笔记(更新ing)

Python原生语法与Numpy对比

求数组元素的和:

(1)使用Python原生list:

def python_sum(n):
    """ Python实现数组的加法
    @param n:数组的长度
    """
    a = [i**2 for i in range(n)]
    b = [i**3 for i in range(n)]
    c = []
    for i in range(n):
        c.append(a[i] + b[i])
    return c

(2)使用Numpy:

def numpy_sum(n):
    """ numpy实现数组的加法
    @param n:数组的长度
    """
    a = np.arange(n) ** 2
    b = np.arange(n) ** 3
    return a+b

从上面的代码中可以看到,要求数组中各元素的和,如果用原生List,必须使用循环。而Numpy数组可以直接用运算符。

此外,Numpy的执行速度也比原生Python List快很多。

Numpy的核心array对象以及创建array的方法

创建array的方法:

(1)从Python的列表List和嵌套列表创建array:

import numpy as np
# 创建一个一维数组,也就是Python的单元素List
x = np.array([1,2,3,4,5,6,7,8])
# 创建一个二维数组,也就是Python的嵌套List
X = np.array(
    [
        [1,2,3,4],
        [5,6,7,8]
    ]
)

(2)使用预定函数的arange、ones/ones_like、zeros/zeros_like、empty/empty_like、full/full_like、eye等函数创建:

#【1】arange函数:arange([start,] stop[, step,], dtype=None)
np.arange(10) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(2, 10, 2) #array([2, 4, 6, 8])
# 【2】ones函数:np.ones(shape, dtype=None, order='C')
#shape : int or tuple of ints Shape of the new array, e.g., (2, 3) or 2
np.ones(10)#array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.ones((2,3))
#array([[1., 1., 1.],
#       [1., 1., 1.]])
# 【3】ones_like函数:ones_like(a, dtype=float, order='C')
np.ones_like(x)
np.ones_like(X)
# 【4】empty函数:empty(shape, dtype=float, order='C')
#注意:数据是未初始化的,里面的值可能是随机值不要用
np.empty(10)#array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.empty((2,4))
# 【5】full函数:np.full(shape, fill_value, dtype=None, order='C')
# 创建指定值的数组
np.full(10, 666)
np.full((2,4), 333)

(3)生成随机数的np.random模块构建:
在这里插入图片描述

#【1】设定随机种子,每次生成的随机数相同
np.random.seed(666)

#【2】rand(d0, d1, ..., dn)
#返回数据在[0,1)之间,具有均匀分布
np.random.rand(5)#array([0.70043712, 0.84418664, 0.67651434, 0.72785806, 0.95145796])
np.random.rand(3, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值