Python numpy 入门系列 04 创建数组

NumPy 创建数组

ndarray 数组除了可以使用底层 ndarray 构造器来创建外,也可以通过以下几种方式来创建。

 

numpy.empty

numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组(空数组,随机数值):

numpy.empty(shape, dtype = float, order = 'C')

参数说明:

参数描述
shape 数组形状
dtype 数据类型,可选
order 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

下面是一个创建空数组的实例:

实例

import numpy as np 
x = np.empty([3,2], dtype = int) # 3行2列的随机数组
print (x)
输出结果为:
[[ 6917529027641081856  5764616291768666155]
 [ 6917529027641081859 -5764598754299804209]
 [          4497473538      844429428932120]]

注意数组元素为随机值,因为它们未初始化

 

numpy.zeros

创建指定大小的数组,数组元素以 0 来填充:

numpy.zeros(shape, dtype = float, order = 'C')

参数说明:

参数描述
shape 数组形状
dtype 数据类型,可选
order 'C' 用于 C 的行数组,或者 'F' 用于 FORTRAN 的列数组

实例

复制代码
import numpy as np
 
# 默认为浮点数
x = np.zeros(5) 
print(x)
 
# 设置类型为整数
y = np.zeros((5,), dtype = np.int) # 5个元素
print(y)
 
# 自定义类型
z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])  # 2行 2列
print(z)
复制代码

 输出结果为:

[0. 0. 0. 0. 0.]
[0 0 0 0 0]
[[(0, 0) (0, 0)]
 [(0, 0) (0, 0)]]

 

numpy.ones

创建指定形状的数组,数组元素以 1 来填充:

numpy.ones(shape, dtype = None, order = 'C')

参数说明:

参数描述
shape 数组形状
dtype 数据类型,可选
order 'C' 用于 C 的行数组,或者 'F' 用于 FORTRAN 的列数组

实例

复制代码
import numpy as np
 
# 默认为浮点数
x = np.ones(5)  # 5个元素
print(x)
 
# 自定义类型
x = np.ones([2,2], dtype = int)  # 2行 2列
print(x)
复制代码

输出结果为:

[1. 1. 1. 1. 1.]
[[1 1]
 [1 1]]

 

对应二维数组来说,shape[0] 为行的数量,shape[1]为列的数量。

 

补充:

np.random.rand

通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1

 

 np.random.randn

     1. 当函数括号内没有参数时,则返回一个浮点数;
    2. 当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵;
    3. 当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵;
    4. np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal()的输入参数为元组(tuple)。
    5. np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。
    作用:通过本函数可以返回一个或一组服从标准正态分布的随机样本值。
    特点:标准正态分布是以0为均数、以1为标准差的正态分布,记为N(0,1)。对应的正态分布曲线如下所示,即
链接:https://blog.csdn.net/abc13526222160/article/details/86423754


 

 Python numpy 入门系列 目录

ref

https://www.runoob.com/numpy/numpy-array-creation.html

posted @   emanlee  阅读(479)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2009-03-18 Formatting a Report (Reporting Services)
2009-03-18 启用Windows系统上Safari的Debug菜单
2009-03-18 window.print(); is not working in Safari Browser Windows XP
点击右上角即可分享
微信分享提示