4、numpy——创建数组
1、普通创建——np.array()
创建数组最简单的方法就是使用array函数。它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。
import numpy as np
a1 = np.array([1, 2, 3])
print(a1)
a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float)
print(a2, a2.dtype, a2.shape)
运行结果:
import numpy as np
a1 = np.array([1, 2, 3])
print(a1)
a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float)
print(a2, a2.dtype, a2.shape)
2、内置方法——np.asarray() np.fromiter()
- numpy.asarray # 类似于numpy.array
- numpy.fromiter # 此函数从任何可迭代对象构建一个ndarray对象,返回一个新的一维数组。
2.1 numpy.asarray
语法:
numpy.asarray(a, dtype = None, order = None)
参数:
| 参数 | 描述 |
|---|---|
| a | 任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表 |
| dtype | 输入出的数组类型,可选 |
| order | ‘C’为按行的 C 风格数组,’F’为按列的 Fortran 风格数组 |
x = [1, 2, 3] # x是python的列表类型 不是数组
a1 = np.asarray(x)
print(a1) # [1 2 3]
y = (4, 5, 6) # y是python的元组类型
a2 = np.asarray(y, dtype=float, order='F')
print(a2) # [4. 5. 6.]
2.2 numpy.formiter
语法:
numpy.fromiter(iterable, dtype, count = -1)
参数:
| 参数 | 描述 |
|---|---|
| iterable | 任何可迭代对象 |
| dtype | 返回数组的数据类型 |
| count | 需要读取的数据数量,默认为-1,读取所有数据 |
例子:
import numpy as np
x = range(5)
a = np.fromiter(x, float, 5)
print(a)
结果:
[0. 1. 2. 3. 4.]
3 内置方法——np.arange()创建
语法:
numpy.arange(start, stop, step, dtype)
参数:
start 范围的起始值,默认为0
stop 范围的终止值(不包含)
step 两个值的间隔,默认为1
dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
例子:
import numpy as np
# 普通用法
a1 = np.arange(10)
#含起始点
a2 = np.arange(10, 20)
# 带步长
a3 = np.arange(10, 20, 2)
# 倒着
a4 = np.arange(20, 10, -1)
print(a1, '\n', a2, '\n', a3, '\n', a4)
执行结果:
[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[10 12 14 16 18]
[20 19 18 17 16 15 14 13 12 11]
4、内置方法——等比等差创建
4.1 np.linspace (起始值,终止值,元素总数):创建一维等差数组。
语法:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数说明:
| 参数 | 描述 |
|---|---|
start |
序列的起始值 |
stop |
序列的终止值,如果endpoint为true,该值包含于数列中 |
num |
要生成的等步长的样本数量,默认为50 |
endpoint |
该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。 |
retstep |
如果为 True 时,生成的数组中会显示间距,反之不显示。 |
dtype |
ndarray 的数据类型 |
例子:
import numpy as np
a1 = np.linspace(0, 10, 5)
print("等差数组:", a1)
a2 = np.linspace(0, 10, 5, retstep=True, dtype=np.int8)
print(a2)
结果:
等差数组: [ 0. 2.5 5. 7.5 10. ]
(array([ 0, 2, 5, 7, 10], dtype=int8), 2.5
4.2 np.logspace(起始值,终止值,元素总数):创建一维等比数组。
语法:
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
base 参数意思是取对数的时候 log 的下标。
| 参数 | 描述 |
|---|---|
start |
序列的起始值为:base ** start |
stop |
序列的终止值为:base ** stop。如果endpoint为true,该值包含于数列中 |
num |
要生成的等步长的样本数量,默认为50 |
endpoint |
该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。 |
base |
对数 log 的底数。 |
dtype |
ndarray 的数据类型 |
例子:
import numpy as np
# 默认底数是 10
a = np.logspace(1.0, 2.0, num=10)
print(a)
# 将对数的底数设为2
a = np.logspace(0, 9, 10, base=2)
print(a)
结果:
[ 10. 12.91549665 16.68100537 21.5443469 27.82559402
35.93813664 46.41588834 59.94842503 77.42636827 100. ]
[ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]
5、内置方法创建(特殊构造)
5.1 np.zeros(shape, dtype=float, order='C'):创建一个全0数组,shape要以元组格式传入
import numpy as np
a1 = np.zeros((3, 4), dtype=int)
print(a1)
a2 = np.zeros_like(a1)
print('副本:', a2)
# 结果:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
副本: [[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
5.2 np.ones(shape, dtype=None, order='C'):创建一个全1数组,shape要以元组格式传入。
import numpy as np
a1 = np.ones((2, 3), dtype=int)
# 返回具有与给定数组相同的形状和类型的数组
a2 = np.ones_like(a1)
print(a2)
结果:
[[1 1 1]
[1 1 1]]
5.3 np.empty(shape, dtype=None, order='C'):创建一个拥有趋近0值的数组,shape要以元组格式传入。
import numpy as np
x = np.empty((2, 3), dtype=int, order='C')
print(x)
'''
[[7209029 6422625 6619244]
[ 100 6553673 0]]
'''
5.4 np.eye(N, M=None, k=0, dtype=float, order='C'):创建一个对角矩阵,N代表行,M代表列。其中有个参数k默认值为0,它代表偏移量,正1时向主对角线右上偏移1位,负1时向主对角线左下偏移1位。
import numpy as np
a1 = np.eye(3, 3, dtype=int)
print(a1)
# 对角线下移
a2 = np.eye(3, 3, k=-1, dtype=int)
print('*************************\n', a2)
# 对角线向上移
a3 = np.eye(3, 3, k=1, dtype=int)
print('*************************\n', a3)
结果:
[[1 0 0]
[0 1 0]
[0 0 1]]
*************************
[[0 0 0]
[1 0 0]
[0 1 0]]
*************************
[[0 1 0]
[0 0 1]
[0 0 0]]
5.5 np.full(shape, fill_value, dtype=None, order='C'):创建一个以fill_value进行填充的数组,fill_value为想要填充的值
import numpy as np
a1 = np.full((3, 3),fill_value=5)
print(a1)
#结果
[[5 5 5]
[5 5 5]
[5 5 5]]
6、从随机函数创建
随机生成数组需要考虑的因素:
- 数据范围:区间,整数、小数
- 数据分布:均匀分布、正态分布、指定分布
- 数据形状:size
常用的随机函数
| 函数 | 解释 |
|---|---|
| rand(d0,d1,…) | [0,1]均匀分布 |
| randint(low,high,size) | [low,high)整数均匀分布 |
| choice(a,size,replace,p) | 指定数组指定概率分布 |
| randn(d0,d1,…) | 标准正态分布 |
[0,1]均匀分布
import numpy as np
a1 = np.random.rand(4, 4)
print(a1)
》》》
[[0.77052073 0.68006097 0.07924217 0.81588193]
[0.99678088 0.3900633 0.64834814 0.62874627]
[0.15473904 0.24785919 0.75724866 0.32946373]
[0.99667109 0.12276489 0.26126159 0.36696264]] 0.7705207279750877
[a,b)整数均匀分布
import numpy as np
a = np.random.randint(2, 5, (3, 3))
print(a)
>>>
[[3 4 2]
[4 2 2]
[2 4 4]]
指定数组指定概率分布
import numpy as np
a = np.random.choice([1, 2, 3, 4], size=(3, 4), replace=True, p=[0.1, 0.2, 0.3, 0.4])
print(a)
>>>
[[2 2 3 1]
[4 4 4 3]
[1 2 1 2]]
N(0,1)标准正态分布
import numpy as np
a = np.random.randn(4, 4)
print(a)
>>>
[[-1.94776705 1.82906205 0.45956222 -1.09130521]
[ 1.52936905 -2.38259868 -1.53460647 1.95028102]
[ 0.7148325 0.40825257 0.15732141 -0.45423096]
[-0.20530692 1.34386361 1.13883039 -0.14897777]]
4、numpy——创建数组的更多相关文章
- Numpy 创建数组2
Numpy数组除了可以使用底层 ndarray 构造器来创建外,也可以同伙一下集中方式来创建. numpty.empty numpy.empty方法用来创建一个指定形状(shaoe).数据类型(dty ...
- Numpy创建数组
# 导入numpy 并赋予别名 np import numpy as np # 创建数组的常用的几种方式(列表,元组,range,arange,linspace(创建的是等差数组),zeros(全为 ...
- Numpy 创建数组
ndarray 数组除了可以使用底层 ndarray 构造器来创建外, 也可以通过以下几种方式来创建. numpy.empty numpy.empty 方法用来创建一个指定形状(shape),数据类型 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 创建数组
import numpy as np x = np.empty([3,2], dtype = int) print (x) import numpy as np # 默认为浮点数 x = np.zer ...
- numpy的学习之路(1)——创建数组以及基本运算
需要导入的包 import numpy as np import pandas 一.利用numpy创建数组 1.1创建简单数组 array =np.array([[1,2,3], [2,3,4]]) ...
- numpy学习之创建数组
1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...
- 『Numpy』内存分析_利用共享内存创建数组
引.内存探究常用函数 id(),查询对象标识,通常返回的是对象的地址 sys.getsizeof(),返回的是 这个对象所占用的空间大小,对于数组来说,除了数组中每个值占用空间外,数组对象还会存储数组 ...
- NumPy 从数值范围创建数组
NumPy 从数值范围创建数组 这一章节我们将学习如何从数值范围创建数组. numpy.arange numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下: ...
- NumPy 从已有的数组创建数组
NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...
随机推荐
- Ubuntu Anaconda3 环境下安装caffe
安装Python环境 本人环境为Anaconda3 ,可参照 https://blog.csdn.net/ctwy291314/article/details/86571198 完成安装Python2 ...
- Java8 的一些新特性的学习理解
近期在学习队列相关的一些知识,在学习过程中发现Iterable<T>接口中新增了两个新的方法,出于好奇,就想知道这是什么东东,干什么用的.俗话说:实践出真知,所以就有了以下反复的测试. 先 ...
- 理解Promise (4)
then 方法必须 返回一个新的promise promise2 = promise1.then(onFulfilled, onRejected); 新的Promise 必须返回传递两个方法 onF ...
- 【串线篇】spring boot配置嵌入式servlet容器
SpringBoot默认使用Tomcat作为嵌入式的Servlet容器 问题? 一.如何定制和修改Servlet容器的相关配置 1.方法1修改和server有关的配置(ServerProperties ...
- 阿里云ECS VSFTP上传本地文件
开始终端 购买云服务,获得公网IP,内网IP 控制台首页获得 获得终端连接密码 连接终端,输入连接密码 获得终端界面,进入终端 上传文件 ## .安装VSFTP服务器程序 yum install vs ...
- 在一个div上增加遮罩
有一个需求是给一个视频增加遮罩 我研究了下 抽象出来就是给一个div增加遮罩 原理是:最外层的div使用relative定位 然后里面放两个子div 一个是不被遮的 另一个是遮罩(用abs ...
- Flask学习笔记02之配置文件
1. Flask默认的配置 Flask实例中包含了它的配置信息 #实例化一个Flask对象 app = Flask(__name__) # 打印默认配置信息 print(app.config) 打印结 ...
- Bugku 杂项 这是一张单纯的图片
这是一张单纯的图片 将图片用winhex打开 会发现在最后的部分有html实体编码 decode一下得到 key{you are right} 关于html实体编码 对于某些特殊字符如 < 与 ...
- Vue的思考扩展
1.Vue是如何实现数据双向绑定的 1.1.实现双向绑定的基本原理 数据驱动:Vue会通过Dircetives指令,对DOM做一层封装,当数据发生改变会通知指令去修改对应的DOM,数据驱动DOM变化, ...
- 二叉搜索树第k个节点
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x ...