1 使用list初始化

a=np.array([[1,2,3],[4,5,6]],dtype='float32')
#a=[[1. 2. 3.],[4. 5. 6.]]

2 赋值与复制

(1)赋值

a=np.array([1,2,3])
b=a
print(b is a) #True b[0]=0
print(a) #[0 2 3]
print(b) #[0 2 3]
print(b is a) #True

在赋值情形下,b 和 a 指向同一块地址,b 改变,a 也随着改变 。

a=np.array([1,2,3])
b=a[:2]
print(b is a) #False b[0]=0
print(a) #[0 2 3]
print(b) #[0 2]

在使用切片时,切片改变,原数据也会改变。

(2)复制

a=np.array([1,2,3])
b=a.copy()
print(b is a) #False b[0]=0
print(a) #[1 2 3]
print(b) #[0 2 3]

在复制情形下,b和a指向不同地址,b改变,a不会改变

3 随机数初始化

3.1 区间内随机数

(1)np.random.uniform(low=0.0, high=1.0, size=None)

简介:生成 [low,high) 内的 size 个随机数,默认 [0,1) 之间,size 是 int 型或元组

a=np.random.uniform() #产生[0,1)内的1个随机数
#a=0.1973408987805232 b=np.random.uniform(10,20,2) #产生[10,20)内的2个随机数
#b=[10.15492129 12.8762581] c=np.random.uniform(1,5,(2,3)) #产生[1,5)内2*3个随机数
#c=[[1.89354111 4.01642541 1.63691704],[3.23261205 4.81380553 4.51288251]]

(2)np.random.rand(d0,d1,...,dn)

简介:生成 [0,1) 内的 d0*d1*...*dn 个浮点数,d0,d1,...,dn 表示数组维度

a=np.random.rand() #产生[0,1)内的1个随机数
#a=0.7114622255979923 b=np.random.rand(2) #产生[0,1)内的2个随机数
#b=[0.39094731 0.32324018] c=np.random.rand(2,3) #产生[0,1)内的2*3个随机数
#c=[[0.30305566 0.70335946 0.71778137],[0.03069973 0.20145633 0.70092122]]

(3)np.random.randint(low, high=None, size=None, dtype=’l’)

简介:生成 [low,high) 内的 size 个整型随机数,默认1个 [0,low) 内的随机整数

a=np.random.randint(10) #产生[0,10)内的1个随机整数
#a=6 b=np.random.randint(10,20) #产生[10,20)内的1个随机整数
#b=14 c=np.random.randint(1,5,(2,3)) #产生[1,5)内的2*3个随机整数
#c=[[4 2 2],[3 2 1]]

3.2 随机全排列

(1) np.random.permutation(n)

简介:若 n 为 int,生成 0~n-1 的一个随机排列;若 n 为数组,生成此数组的一个随机排列

a=np.random.permutation(10)
#a=[5 9 6 8 7 4 0 3 1 2] x=np.array([2.2,4.4,6.6,8.8])
b=np.random.permutation(x) #x不变,b随机
#b=[6.6 2.2 4.4 8.8]

(2)np.random.shuffle(arr)

简介:将数组 arr 随机打乱

a=np.array([1,3,5,7,9,0,2,4,6,8])
np.random.shuffle(a)
#a=[6 5 9 8 0 3 4 2 1 7]

3.3 随机部分排列

np.random.choice(a, size=None, replace=True, p=None)

简介:若 a 为 int,从 0~a-1 中随机挑选 size 个数排列;若 a 为数组,则从此数组中随机挑选 size 个数排列。replace 表示是否允许元素重复

a=np.random.choice(10,7,replace=False)
#a=[2 7 0 1 8 4 3] x=['a','b','c','d','e','f','g','h','i','j']
b=np.random.choice(x,5,replace=False)
#b=['b' 'd' 'c' 'i' 'e']

4 全0与全1初始化

a=np.zeros(5,dtype='int32')
#a=[0 0 0 0 0] b=np.zeros((2,3),dtype='int32')
#b=[[0 0 0],[0 0 0]] c=np.ones(5,dtype='int32')
#c=[1 1 1 1 1] d=np.ones((2,3),dtype='int32')
#d=[[1 1 1],[1 1 1]]

5 等步长连续序列初始化

(1)np.arange(min,max,step=1)

简介:生成 [min,max) 之间步长为 step 的序列,步长默认为1

a=np.arange(2,6)
#a=[2 3 4 5] b=np.arange(2,3,0.2)
#b=[2. 2.2 2.4 2.6 2.8]

(2)np.linspace(min,max,num=50)

简介:生成 [min,max] 之间长度为num的序列,长度默认为50

a=np.linspace(6,8,5)
#a=[6. 6.5 7. 7.5 8.] b=np.linspace(1,99)
#b=
#[1. 3. 5. 7. 9. 11. 13. 15. 17. 19. 21. 23. 25. 27. 29. 31. 33. 35.
# 37. 39. 41. 43. 45. 47. 49. 51. 53. 55. 57. 59. 61. 63. 65. 67. 69. 71.
# 73. 75. 77. 79. 81. 83. 85. 87. 89. 91. 93. 95. 97. 99.]

​ 说明:本文转自numpy数组初始化方法总结

numpy数组初始化方法总结的更多相关文章

  1. C++数组初始化方法

    定义: ]; // array of 10 uninitialized ints 此 new 表达式分配了一个含有 10 个 int 型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指 ...

  2. 05.其他创建numpy数组的方法

    >>> import numpy as np >>> np.zeros(10,dtype=int) array([0, 0, 0, 0, 0, 0, 0, 0, 0 ...

  3. Python数据分析工具库-Numpy 数组支持库(一)

    1 Numpy数组 在Python中有类似数组功能的数据结构,比如list,但在数据量大时,list的运行速度便不尽如意,Numpy(Numerical Python)提供了真正的数组功能,以及对数据 ...

  4. Numpy数组对象的操作-索引机制、切片和迭代方法

    前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...

  5. C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理

    C语言中,数组初始化的方式主要有三种: 1.声明时,使用 {0} 初始化: 2.使用memset: 3.用for循环赋值. 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码: #define ...

  6. 轻轻松松了解Java的初始化方法(含对象数组的小问题)

    Java基础复习6-初始化 之前讲过了类的一些基础,想必大家都知道了类的定义 什么?你忘了? 下面给你一个例子快速复习 class AClass{ int a; boolean b; void get ...

  7. 通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail

    面试高频题:单链表的逆置操作/链表逆序相关文章 点击打开 void init_node(node *tail,char *init_array) 这样声明函数是不正确的,函数的原意是通过数组初始化链表 ...

  8. numpy数组、向量、矩阵运算

    可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD ...

  9. NumPy 超详细教程(1):NumPy 数组

    系列文章地址 NumPy 最详细教程(1):NumPy 数组 NumPy 超详细教程(2):数据类型 NumPy 超详细教程(3):ndarray 的内部机理及高级迭代 文章目录 Numpy 数组:n ...

  10. numpy的使用方法

    一.numpy快速入门 1.什么是numpy: numpy是python的一个矩阵类型,提供了大量矩阵处理的函数,非正式来说,就是一个使运算更容易,执行更迅速的库,因为它的内部运算是通过c语言而不是p ...

随机推荐

  1. android studio 如何把依赖导出成 jar

    反编译工具 dex-tools-2.1-SNAPSHOT 第一步 用一个普通的app工程,引用所有的库,然后生成apk文件 第二步 把apk文件,改扩展名为zip,解压后,里面有几个*.dex文件,拷 ...

  2. [转帖]TiDB BR 备份至 MinIO S3 实战

    https://tidb.net/blog/3a31d41d#3.%E9%83%A8%E7%BD%B2%20MinIO%20S3%20%E5%8F%8A%E5%A4%87%E4%BB%BD%E6%81 ...

  3. [转帖]linux下/proc/sysrq-trigger详解

    /proc/sysrq-trigger详解 这是一组"魔术组合键",只要内核没有被完全锁住,不管内核在做什么事情,使用这些组合键能即时打印出内核的信息. 使用SysRq组合键是了解 ...

  4. [转帖]ChatGPT发展历程、原理、技术架构详解和产业未来 (收录于先进AI技术深度解读)

    https://zhuanlan.zhihu.com/p/590655677 陈巍谈芯::本文将介绍ChatGPT的特点.功能.技术架构.局限.产业应用.投资机会和未来.作者本人曾担任华为系自然语言处 ...

  5. dd命令的简单学习

    dd命令简介 dd Copy a file, converting and formatting according to the operands. dd 可以理解为是 disk dump 磁盘转储 ...

  6. sed 删除部分行以及删除包含某些行的命令

    sed的简单学习 前言: 最近进行mysql数据库的备份恢复操作,发现source 命令执行时数据库表的速度非常缓慢, 本来想通过这种方式处理一下,能够减少数据备份的处理. 删除包含内容的信息 sed ...

  7. python批量上传文件到七牛云

    导航 引子 棘手的需求 化繁为简 实战案例 结语 参考 本文首发于智客工坊-<python批量上传文件到七牛云>,感谢您的阅读,预计阅读时长3min. 古之立大事者,不惟有超世之才,亦必有 ...

  8. axios发送请求时携带token

    请求头携带token async getUserlist(){ // 需要授权的Api,必须在青丘头中使用Authorization 字段提供token令牌 const AUTH_TOKEN=loca ...

  9. js引起的 xxxx of null

    在 vue 中操作 dom 元素的时候,报错 style of null 这个报错的原因,跟你代码的健壮性有关了; 这样就不会报错了 if( document.querySelectorAll(&qu ...

  10. QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索、支持海量数据、跨语种问答

    QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索.支持海量数据.跨语种问答 QAnything (Question and Answer based on Anythi ...