numpy简单使用

Python 用 NumPy 实现简单的线性回归 本文章的主要目的是详细介绍如何使用 Python 的 NumPy 库实现简单的线性回归。线性回归是一种基本的统计分析方法,用于建立自变量和因变量之间的线性关系。通过本文章,读者将深入理解线性回归的原理,掌握使用 NumPy 实现线性回归的具体步骤,并能够将其应用到实际的数据分析和预测任务中。本文的范围主要集中在简单线性回归,即只有一个自变量的情况。本文将按照以下结构进行组织:首先介绍线性回归的核心概念与联系,包括原理和架构;接着详细阐述核心算法原理及具体操作步骤,并使用 Python 源代码进行说明; 阅读详情

ndarray、array、list的区别

  • 1.python中的数组

    • 用list和tuple等数据结构表示数组
      • 一维数组 List1 = [1, 2, 3]
      • 二维数组 Tuple1 = ([1, 2, 3], [4, 5, 6], [7, 8, 9])
        但是:列表是【动态指针数组】,它保存的是对象的指针,其元素可以是任意类型的对象。比如要保存上述的List1,需要3个指针和3个整数对象,浪费内存和计算时间。
    • array模块(非内置模块)
      • 通过array函数创建数组 array.array()
      • 提供append、insert和read等方法
        但是:array模块中的array函数不支持多维数组,且函数功能不丰富。
  • 2 NumPy中的N维数组ndarray

    • NumPy中基本的数据结构

    • 所有元素是同一种类型

    • 别名array(数组)

    • 节省内存,提高CPU计算时间

    • 有丰富的函数
      总结:一个【内存空间连续】的、【相同的数据类型】【有序】的集合
      动态数组 指针(引用)列表

    注:NumPy的思维模式是面向数组。

numpty的引入

  • numpy是数据分析的【运算】基础

  • pandas数据分析的【业务】基础
    数据类型 构造函数 运算函数 访问方式

  • 启动方式
    1. cmd jupyter notebook
    2. windows键 jupyter notebook
    3. 在Anaconda里,点击Jupyter下的launch按钮启动

  • 启动说明:
    默认的启动路径是用户的根目录
    调整根目录:使用cmd 到你想要的目录下,然后再启动
    windows不能跨区访问 如果想访问E盘,可以先cd到E盘,然后再启动

  • 导入numpy库,并查看版本

      import numpy as np
      np.__version__
    

numpty的创建

直接用列表创建

  • arr1 = np.array([1,2,3,4,5])
  • 注意:如果列表中有不同的数据类型,会被numpy强制数据类型统一
    • np.array([1,2,3,“hello”]) =>
      array([‘1’, ‘2’, ‘3’, ‘hello’], dtype=’<U11’)
    • 优先级:object>float>int

使用np的常规函数创建

  • np.ones(shape,dtype=None,order=‘C’)

    • shape表达的是一个形状,一般用元组来表达,表示每个维度上数组的个数
    • np.ones(shape=(3,2), dtype=np.int)
      =>array([[1, 1],
      [1, 1],
      [1, 1]])
  • np.zeros(shape, dtype=float, order=‘C’)

    • np.zeros(shape=(5,5), dtype=np.int)
      => array([[0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0]])
  • np.full(shape, fill_value, dtype=None, order=‘C’)

    • fill_value 表示要使用什么值来填充新数组

    • np.full(shape=(3,3,3), fill_value=3)
      =>array([[[3, 3, 3],
      [3, 3, 3],
      [3, 3, 3]],

      [[3, 3, 3],
      [3, 3, 3],
      [3, 3, 3]],

      [[3, 3, 3],
      [3, 3, 3],
      [3, 3, 3]]])

  • np.eye(N, M=None, k=0, dtype=float)
    对角线为1其他的位置为0
    单位矩阵 矩阵除法
    N 代表行
    M代表列, 默认是行=列
    k是正数代表对角线元素右移,负数为左移

    • np.eye(3,2,-1)
      =>array([[ 0., 0.],
      [ 1., 0.],
      [ 0., 1.]])
  • np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
    等差数列
    start 起始值
    stop 终止值
    num 在数据区间,等差数列想获取的数据个数
    endpoint 终止值是否作为取值范围内的数据

    • np.linspace(1,10,num=10, endpoint=False)
      =>array([1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1])
  • np.arange([start, ]stop, [step, ]dtype=None)
    start 可以省略,如果省略默认值0
    step 表示步长,默认是1

    • np.arange(10)
      => array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
  • np.random.randint(low, high=None, size=None, dtype=‘l’)
    [low,higt) 表示一个区间 左闭右开
    size表示数组的维度,用元组表示,和shape一样

    • np.random.randint(0,10,size=(3,4))
      =>array([[1, 2, 9, 0],
      [3, 9, 9, 3],
      [0, 6, 9, 3]])
  • np.random.randn(d0, d1, …, dn)
    标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)

    • np.random.randn(3,2) =>
      array([[-0.14398458, -0.47286995],
      [ 0.95427434, 0.64911753],
      [-0.66431491, 1.70914539]])
  • normal(loc=0.0, scale=1.0, size=None)
    正态分布,loc为期望,scale为标准方差

    • data = np.random.normal(loc=175,scale=8,size=(10))
      => array([ 160.11352464, 174.16032546, 158.84265376, 178.67574759,
      166.42684487, 166.81504329, 171.39961295, 172.20360447,
      160.59687194, 171.80781779])
  • np.random.random(size=None)
    生成0到1的随机数,左闭右开

    • np.random.random(size=(3,2))
  • 把数据展示成图形

    • import matplotlib.pyplot as plt
      %matplotlib inline
    • 直方图 表达数据分布的图像
      plt.hist(data, density=True)

ndarray的属性

  • shape 元素的形状,各维度的长度
arr = np.ones(shape=(3,5))
arr ⇒  
arr.shape	==> (3, 5)
arr.size ==>15
arr.ndim ==>2

arr8 = np.array([1,2,1.3])
arr8.dtype ==>dtype('float64')  浮点型
dtype('O')  表示object类型
dtype('int32') 整形

  • ndim 数组的维度
  • size 元素的个数
  • dtype 元素类型

ndarray变形

使用reshape函数,注意参数是一个tuple!
变形必须要保证 变形后的数据个数与变形前一致

arr1 = np.random.random(size=(3,4))
arr1 ==>  3行4列
array([[0.07799376, 0.74508731, 0.83643786, 0.25775686],
      [0.30486044, 0.80641823, 0.37152967, 0.40286362],
      [0.56863387, 0.86737528, 0.23595391, 0.39742841]])
#变成1行12列
arr1.reshape((1,12))  ==>
array([[0.07799376, 0.74508731, 0.83643786, 0.25775686, 0.30486044,
       0.80641823, 0.37152967, 0.40286362, 0.56863387, 0.86737528,
       0.23595391, 0.39742841]])
#变成 12行1列
arr1.reshape((12,1))
#同arr1.reshape((1,12))
arr1.reshape((12,))

ndarray的基本操作

索引

  • 一维与列表完全一致 多维时同理
arr1 = np.random.randint(0,100,size=(10))
arr1	==>array([17, 88, 11, 19, 89, 70,  9, 32, 78, 25])
#通过下标形式访问(同列表)
arr1[-1] ==>25
arr1[::2] ==>array([17, 11, 89,  9, 78])

#可以使用列表作为索引,读取到的内容是一个子数组
【重点】
arr1[[1,3]] ==> array([88, 19])
#可以使用列表对原始数组的数据进行重新排列
【重点】
arr1[[1,3,1,3,1,3]] ==> array([88, 19, 88, 19, 88, 19])

  • 多维数组的索引
    访问元素 二维数组
    arr[index, column]
    • 访问行
      1行 arr[index]
      多行 arr[[index1,index2…indexn]]

    • 访问列
      1列 arr[:,column]
      多列 arr[:,[column1,column2…columnn]]

arr4 = np.random.randint(0,100,size=(6,6))
arr4  ==>
array([[13, 66, 43, 21, 25, 11],
       [66, 85, 46, 11, 57, 68],
       [44, 30, 48, 83, 25,  4],
       [85, 30,  5, 31, 31, 11],
       [79, 55, 82, 15, 81, 99],
       [38, 10, 47, 38, 99,  6]])

# list的访问方式
arr4[-1][-1] ==> 6
arr4[0][[0,1]] ==>array([13, 66])

#二维数组的行列访问
#行访问
arr4[[0,1]] ==>
array([[13, 66, 43, 21, 25, 11],
       [66, 85, 46, 11, 57, 68]])
#列访问
arr4[:,0] ==>
array([13, 66, 44, 85, 79, 38])
#多列访问
arr4[:,[0,1]]
arr4[:,0:2]
#块访问
arr4[0:,[0,1]]
array([[92, 30],
       [37,  8],
       [82, 56],
       [62, 53],
       [57,  5],
       [59, 66]])

切片

一维与列表完全一致 多维时同理
切片是左闭右开区间

  • 元素访问
array([[55, 12, 23, 77, 20],
       [46, 32, 17, 76, 37],
       [89, 57, 19, 88, 65],
       [43, 85, 69, 67, 38],
       [21, 40, 96, 37, 53]])
#行访问
arr[:2]  ==>array([[55, 12, 23, 77, 20],
       [46, 32, 17, 76, 37]])
#列访问
arr[:,3:] ==> 
array([[77, 20],
       [76, 37],
       [88, 65],
       [67, 38],
       [37, 53]])
#块访问
arr[1:3,2:4]  ==>
array([[17, 76],
       [19, 88]])
 	
  • 行列转置
arr2 = np.random.randint(0,10,size=(3,4))
arr2 ==>
array([[9, 7, 1, 4],
       [5, 4, 6, 8],
       [1, 0, 1, 7]])
#行转置
arr2[::-1]
array([[1, 0, 1, 7],
       [5, 4, 6, 8],
       [9, 7, 1, 4]])
#列转置
arr2[:,::-1]
array([[4, 1, 7, 9],
       [8, 6, 4, 5],
       [7, 1, 0, 1]])


# 图片转置
import matplotlib.pyplot as plt
%matplotlib inline
# 读取一张图片
tk = plt.imread('T.jpg')
plt.imshow(tk)
#通过列转置将图片沿着竖轴旋转180度
tk1 = tk[:,::-1]
plt.imshow(tk1)

#使用numpy方法转置
#转置为列
np.vstack(np.arange(0,5))	==>
array([[0],
       [1],
       [2],
       [3],
       [4]])
#转置为行
np.hstack(np.vstack(np.arange(0,5)))	==>
array([0, 1, 2, 3, 4])

级联

concatenate((a1, a2, …), axis=0)

  • np.concatenate() 级联需要注意的点:
  • 级联的参数是列表:一定要加中括号或小括号
  • 维度必须相同
  • 形状相符
    【重点】级联的方向默认是shape这个tuple的第一个值所代表的维度方向
    可通过axis参数改变级联的方向
arr1 = np.random.randint(0,100,size=(2,3))
arr2 = np.random.randint(100,110, size=(2,4))
# display相当于print函数
display(arr1, arr2)  ==>
array([[16, 74, 69],
       [26, 93, 23]])
array([[108, 103, 101, 103],
       [102, 103, 105, 106]])

#水平级联 axis是1
np.concatenate((arr1, arr2), axis=1) ==>
array([[ 16,  74,  69, 108, 103, 101, 103],
       [ 26,  93,  23, 102, 103, 105, 106]])

  • np.hstack水平级联
np.hstack((arr1, arr2)) ==>
array([[ 16,  74,  69, 108, 103, 101, 103],
       [ 26,  93,  23, 102, 103, 105, 106]])
  • np.vstack 垂直级联 ==>报错,形状不相符

切分

np.split(ary, indices_or_sections, axis=0)
np.vsplit(ary, indices_or_sections)
np.hsplit(ary, indices_or_sections)
【注意】:indices_or_sections int类型,表示要切分的份数 平均分
需要保证,在切分的维度上的数据个数,必须能被indices_or_sections这个值整除

  • np.vsplit 垂直切分
arr1 = np.random.randint(0,100,size=(6,4))
arr1 ==>
array([[79, 95,  8, 77],
       [25, 78, 99,  5],
       [96, 91, 74,  9],
       [11, 26, 65, 21],
       [89, 40, 52, 65],
       [93, 48, 41, 12]])
#切三份
np.vsplit(arr1, 3)  ==>
[array([[79, 95,  8, 77],
        [25, 78, 99,  5]]), array([[96, 91, 74,  9],
        [11, 26, 65, 21]]), array([[89, 40, 52, 65],
        [93, 48, 41, 12]])]
#按列表格式切成三个区间[m,n]  0:2, 2:4, 4:
np.vsplit(arr1, [2,4])  ==>
[array([[79, 95,  8, 77],
        [25, 78, 99,  5]]), array([[96, 91, 74,  9],
        [11, 26, 65, 21]]), array([[89, 40, 52, 65],
        [93, 48, 41, 12]])]

  • np.hsplit() 水平切分同 垂直切分
  • np.spilt()
arr3 = np.random.randint(0,100,size=(3,8))
arr3  ==>
array([[77, 45, 56,  7,  2, 44, 72, 65],
       [82, 79, 46, 87,  0, 57, 88, 85],
       [43, 88, 62, 33, 74, 59, 33, 28]])
# 水平切分成三份       
np.split(arr3, indices_or_sections=[3,4],axis=1)  ==>
[array([[77, 45, 56],
        [82, 79, 46],
        [43, 88, 62]]), array([[ 7],
        [87],
        [33]]), array([[ 2, 44, 72, 65],
        [ 0, 57, 88, 85],
        [74, 59, 33, 28]])]

副本

所有赋值运算不会为ndarray的任何元素创建副本。对赋值后的对象的操作也对原来的对象生效(赋值)
可使用copy()函数创建副本

arr = np.random.randint(0,10,size=1)
arr ==>
array([5])
# 浅拷贝
arr1 = arr
arr1[0]  ==>
5

ndarray的聚合操作

  • 常见的聚合操作
    Function Name NaN-safe Version Description
    np.sum np.nansum Compute sum of elements
    np.prod np.nanprod Compute product of elements
    np.mean np.nanmean Compute mean of elements
    np.std np.nanstd Compute standard deviation
    np.var np.nanvar Compute variance
    np.min np.nanmin Find minimum value
    np.max np.nanmax Find maximum value
    np.argmin np.nanargmin Find index of minimum value
    np.argmax np.nanargmax Find index of maximum value
    np.median np.nanmedian Compute median of elements
    np.percentile np.nanpercentile Compute rank-based statistics of elements
    np.any N/A Evaluate whether any elements are true
    np.all N/A Evaluate whether all elements are true
    np.power 幂运算
    【注意】np.sum 和 np.nansum 的区别 nan not a number
  • 一维
arr = np.array([1,2,8,4,5])
#求和
arr.sum() ==>20
#最小值
arr.min() ==>1
#最大值的索引
arr.argmax() ==> 2
  • 多维

arr1 = np.ones(shape=(2,5))
arr1  ==>
array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])
#垂直方向
arr1.sum(axis=0)   ==>
array([2., 2., 2., 2., 2.])
#水平方向
arr1.sum(axis=1)  ==>
array([5., 5.])

  • any()和all()
    any() 有True返回True
    all() 有False返回False
arr1 = np.array([True,False,False])

# 有一个True,就返回True
arr1.any()  ==>True
arr1.all()  ==>False

ndarray的矩阵操作

基本矩阵操作

  • 算术运算符
a1 = np.random.randint(0,10,size=(3,3))
a2 = np.ones(shape=(3,3))
display(a1, a2) ==>
array([[7, 2, 5],
       [2, 9, 8],
       [6, 6, 8]])
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

a1 + a2 ==> 加法

array([[ 8.,  3.,  6.],
       [ 3., 10.,  9.],
       [ 7.,  7.,  9.]])
a1 * a2  ==> 乘法
array([[7., 2., 5.],
       [2., 9., 8.],
       [6., 6., 8.]])
  • 矩阵积np.dot()
a1 = np.array([[1,2],[3,4]])
a2 = np.array([[1,1],[1,1]])
np.dot(a1,a2)  ==>
array([[3, 3],
       [7, 7]])
#默认的运算 对应位置运算
# 矩阵运算   需要使用dot函数

  • 广播机制

【重要】ndarray广播机制的两条规则

 规则一:为缺失的维度补1
规则二:假定缺失元素用已有值填充
# 一个数组维度不全
m = np.ones((2, 3))
a = np.arange(3)
m + a  ==>将a变成 [[0,1,2],[0,1,2]] 再相加
array([[ 1.,  2.,  3.],
       [ 1.,  2.,  3.]])
       
#两个数组维度不全
a = np.arange(3).reshape((3, 1))
b = np.arange(3)
a + b	==>
a变成 [[0,0,0],[1,1,1,],[2,2,2]]
b变成 [[0,1,2],[0,1,2],[0,1,2]]
array([[0, 1, 2],
       [1, 2, 3],
       [2, 3, 4]])
#0维和其他维运算
arr2 = np.array([[ 9, 10, 10, 11,  5],
       [10, 10, 10,  3,  6]])

arr2 + 2 ==>
array([[ 9, 10, 10, 11,  5],
       [10, 10, 10,  3,  6]])


#不支持的运算
# 形状上不支持广播
a = np.ones((3,2))
b = np.ones(4)
a + b

ndarray的排序

  • 快速排序
    np.sort()与ndarray.sort()都可以,但有区别:
    np.sort()不改变输入
    ndarray.sort()本地处理,不占用空间,但改变输入
#不改变原始输入
arr1 = np.array([2,3,6,1,7,9,4,5,8,0])
result = np.sort(arr1)
result  ==>
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# 改变原始输入
arr1.sort()
arr1 ==>
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

  • 部分排序
    np.partition(a, kth, axis=-1, kind=‘introselect’, order=None)

创建一个数组的副本,其中的元素被重新排列,使位于第k个位置的元素的值位于排序后的数组中的位置。所有小于第k个元素的元素都在这个元素之前移动,所有相等或更大的元素都在后面移动。两个分区中元素的顺序没有定义。

arr1 = np.array([2,3,6,1,7,9,4,5,8,0])
#第二个 位置排序
np.partition(arr1, 2)  ==>
array([0, 1, 2, 3, 7, 9, 4, 5, 8, 6])	# 只有第二个元素的位置是可靠排序,
#倒数第二个
np.partition(arr1, -2)	==>
array([1, 0, 2, 3, 4, 5, 6, 7, 8, 9])	# 只有倒数第二个元素的位置是可靠排序
NumPy简单学习 2024.12.24 NumPy简单学习 阅读详情

相关推荐

利用Python进行简单的文件读写操作+Numpy库的简单使用

Python简单的文件操作+Numpy练习1练习题文件操作+Numpy的简单使用(1)Numpy的简单使用(2)Numpy优化Matplotlib画图过程Numpy在数组上的简单应用文件操作+Numpy的简单使用(1)练习一代码方法一方法二练习一效果图练习二方法一方法二练习二效果图练习三代码练习三效果图Numpy的简单使用(2)代码效果图Numpy优化Matplotlib画图过程优化代码(练习一)效果图Numpy在数组上的简单应用练习二练习二代码练习二效果图练习三练习三代码练习三效果图小结 练习题 文件操作

MaRin0709的博客 608

【python】python 机器学习之 Numpy 使用总结(一)

文章目录数据类型数组属性创建数组 数据类型 numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型。下表列举了常用 NumPy 基本类型。 名称 描述 bool_ 布尔型数据类型(True 或者 False) int_ 默认的整数类型(类似于 C 语言中的 long,int32 或 in...

beautiful_huang的博客 447

Python 用 NumPy 实现简单的聚类分析

聚类分析是一种重要的数据挖掘技术,广泛应用于图像识别、市场细分、生物信息学等多个领域。本文章的目的是介绍如何使用 Python 的 NumPy 库实现简单的聚类分析,具体聚焦于经典的 K-Means 聚类算法。通过本文章,读者将了解聚类分析的基本概念、K-Means 算法的原理和实现步骤,并能够使用 NumPy 编写自己的聚类分析代码。本文将按照以下结构进行组织:首先介绍聚类分析的核心概念和相关术语,然后详细讲解 K-Means 聚类算法的原理和使用 NumPy 实现的具体步骤。

AI Python 编程之道的博客 1027

numpy数组介绍

目录1:了解NUmpy1.1:为什么会有NUmpy1.2:什么是Numpy1.3:Numpy的特点1.4:Numpy的安装拓展(理解python的数据类型)动态类型语言静态类型语言 1:了解NUmpy 主要介绍什么是为什么回有数组、数组对象和数组对象的作用 1.1:为什么会有NUmpy 在数据分析的过程中,需要接触的数据是非常多的,但是普通的python数据类型对于处理大,大量的数据可能会显得力不从心(处理数据的效率会变慢),这个时候人们就迫切的需要一种可以快速处理大量数据的数据类型,所以数组(Num

- 青崖 - 7907

手把手教你用FreeModbus RTU协议栈实现STM32与PLC通信(附Keil工程)

本文详细介绍了如何使用FreeModbus RTU协议栈在STM32上实现与PLC的工业通信。从环境搭建、工程配置到关键移植接口实现,提供了Keil工程模板和调试技巧,帮助开发者快速掌握Modbus RTU通信技术,适用于工业自动化领域的设备间通信需求。

weixin_42549037的博客 419

gesp c++ 五级知识点

gesp c++ 五级知识点

MMD.然大大 2009

一文弄懂numpy数组

前言学习数据分析,必绕不开numpy和pandas这两个库,numpy的ndarray数据结构和矩阵数据非常类似,最近搞科研的时候总是会用到,之前学的都忘记完了,所以,这次打算把numpy库的基本用法记录在一篇文章里,以便后面复习和使用。ndarray多维数组创建不要管复杂的概念,我们把多维数组看做成矩阵就行(实际使用中也是这样的),例如,下面的二维数据,我们就可以看做成2行3列的矩阵。impor...

罗罗攀 8782

Altium AD20差分对走线设置方法

AD20的PCB差分对走线设置 1、原理图添加差分对 先在原理图中,讲要设置差分对的网络对添加网络标签。 名称前面的内容要相同,后缀用 _P 和 _N 加以区分。 最后使用 放置差分对,将两个网络标记。 2、编译,更改到PCB 编译,更新到PCB,确认差分对网络的出现。 验证更改,执行更改。将改动更新到PCB中。 PCB中,可通过 右下角 Panels - 调出 PCB 显示。来对已添加的差分对进行查看。 这时原本的走线有一点点小问题,需要删掉原来走线,设置差分对规则,并重新布线。

Mark_md的博客 3万+

2、NumPy数组基本用法

@[TOC](NumPy数组基本用法) (1)Numpy是Python科学计算库,用于快速处理任意维度的数组。 (2)NumPy提供一个==N维数组类型ndarray==,它描述了==相同类型==的“items”的集合。 (3)numpy.ndarray支持向量化运算。 (4)NumPy使用c语言写的,底部解除了GIL,其对数组的操作速度不在受python解释器限制。 ## 1、numpy中的数组: Numpy中的数组的使用跟Python中的列表非常类似。他们之间的区别如下:

qq_43061415的博客 3171

AI Agent在营销领域的实战策略

本文从第一性原理出发,系统性拆解AI Agent在营销领域的落地逻辑、技术架构、实现方案与实战策略。全文覆盖从基础概念到高级优化的全层级知识:底层理论层面推导营销Agent的效用函数与决策框架;技术架构层面提出"感知-记忆-规划-行动-反思"五组件可落地架构;实践层面提供生产级代码实现、多行业案例与ROI提升方法论;前沿层面探讨多Agent协同、世界模型仿真等下一代技术方向。

操作系统内核探秘的博客 227

告别裸机思维:在STM32F407上玩转LwIP,让你的设备轻松接入TCP网络

本文详细介绍了如何在STM32F407微控制器上使用LwIP协议栈实现TCP网络连接,从裸机编程到网络化的架构革命。通过事件驱动模型、内存优化配置和工业级稳定性实现,帮助开发者高效构建稳定TCP连接,适用于物联网设备联网等场景。

weixin_33725515的博客 562

机器学习——numpy

numpy专门针对ndarray的操作和运算进行了设计,所以该类型的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。 从现有数组中生成 生成固定范围的数组 正态分布 正态分布是具有两个参数μ和σ的连续型随机变量的分布,第一参数μ是服从正态分布的随机变量的均值,第二个参数σ是此随机变量的方差,所以正态分布记作N(μ,σ )。 其中μ决定了其位置,其标准差σ决定了分布的胖瘦。且当μ = 0,σ = 1时的正态分布是标准正态分布。 σ越小分布则越瘦高,σ越大

胡图图不糊涂的博客 1460

HTML5+CSS3+JS小实例:扇形展开折叠菜单

你肯定见过那种圆形浮动按钮(FAB),点一下弹出几个选项。大部分实现就是菜单项从底下往上"弹"出来,排成一列——能用,但没啥记忆点。后来我看到 Path 那个经典的扇形菜单,点一下,五个按钮像花瓣一样从中心散开,每个带不同的延迟和弹性曲线。当时就觉得:这才对嘛,交互就该有点"戏剧性"。今天拆一个纯手写版本,HTML + CSS + JS,不依赖任何库。六菜单项、扇形 144° 展开、弹性过渡、点击关闭、键盘可达——该有的都有。

艾恩小灰灰的博客 164

numpy的简单使用

numpy的简单使用 numpy概述 Numerical Python(数值python). 补充了python欠缺的数值运算能力. Numpy是其他数据分析及机器学习的底层库. Numpy完全标准C语言实现, 运行效率高. 开源免费. numpy的历史 1995年, 发布Numeric python. 2001年, Scipy 提供 Numarray. (提供了多维数组) 2005年, Numeric + Numarray -> Numpy. 2006年, Numpy脱离Scipy成为独立的项

weixin_45081640的博客 302

【OS】AUTOSAR OS系统调用产生Trap的过程详解

AUTOSAR OS系统调用产生Trap的过程详解

qq_36056498的博客 2438

RK3568平台(camera篇)点亮imx586摄像头

mipi摄像头硬件确认点:1.供电:5V,2.8V,1.2V,1.8V,reset脚(硬拉3.3,上电的时候从低到高),pwron脚外接3.3V。2,时钟:MCLKOUT是24兆时钟。3.4组差分mipi线。mipi的data线的波形为方波。

weixin_49303682的博客 7258

Numpy库的简单使用

numpy库的简单使用

csdnVIP071210的博客 497

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Numpy的简单用法

Numpy的简单用法 import numpy as np 一、创建ndarray对象 列表转换成ndarray: >>> a = [1,2,3,4,5] >>> np.array(a) array([1, 2, 3, 4, 5]) 取随机浮点数 >>> np.random.rand(3, 4) array([[ 0.1621533...

python学习者的博客 600

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Numpy简单入门

Numpy简单入门     在Numpy中有两个重要的对象:ndarray和ufunc,下面进行简单的介绍和使用 ndarray     ndarray实际就是多维数组,用于解决多维数组的问题.在Numpy数组中,维数称为秩,一维数组的秩为1,二维数组的秩为2,以此类推.在Numpy中每一个线性的数组称为一个轴,其实秩就是描述轴的数量. 创建简单数组     下面代码是使用示例: # 导入num...

github_35735591的博客 297

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

用 Numpy 实现一个简单的神经网络

本示例来自于PyTorch的官网上的一个warm-up小示例, 觉得很有代表性, 所有这里单独记录一下. 对于numpy来说, 它对计算图, 深度学习, 梯度等等概念几乎是不知道的, 但是, 如果我们了解简单神经网络的具体结构, 那么我们就可以很轻易的用numpy来实现这个简单网络, 对此, 我们通常需要自己来实现前向计算和反向计算的逻辑, 下面我们来实现一个具有两层隐藏层的简单网络: impor...

顾道长生的科研笔记 837

Opencv——Numpy的简单运算

Numpy的简单输出: import numpy as np a=np.array([10,20,30,40]) b=np.arange(4) print(a,b) c=b**2 c=10*np.tan(a) print(c) print(b<3) print(b==3) 输出结果: [10 20 30 40] [0 1 2 3] [ 6.48360827 22.37160944 -64.05331197 -11.17214931] [ True True True Fals

qq_35447572的博客 3043

安装Numpy的简单方法

安装Numpy简单方法 1.win+R调用运行命令框,输入cmd。 2.输入pip install numpy(注意保持网络连接) 3.等待安装,安装完毕后在cmd中输入pip install numpy。如果安装成功, cmd会显示 Requirement already satisfied: numpy in(python安装位置)。 ...

qq_34399105的博客 9478

pycharm 安装numpy包——超简单

非常简单的安装步骤,自己百试不爽哦,废话不多说直接上图按以下步骤进行即可 一、找到安装numpy的地方 file→settings→project interpreter,点击右侧的+号 二、进行numpy 安装 搜索框内手动输入numpy进行搜索,选中numpy,点击右下方的install package进行安装 三、安装完毕提示&检查是否安装成功 安装成功提示如下 以下2种方法可进行numpy安装是否成功的检查: 第一种:检查numpy是否已在安装列表内 ...

weixin_41981793的博客 6万+

python中Numpy的简单用法及代码示例

科学计算库Numpy nd array结构,示例代码。

娃哈哈喽Zzz 268
上一篇: jupyter notebooke 基本操作
下一篇: pandas的基本使用
Are you ready
博客等级 码龄8年 312粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值