Numpy系列之Numpy对象的属性和创建


Numpy的核心是ndarray对象,这个对象封装了同质数据类型的n维数组。

1、ndarray对象的主要属性

属性说明
.ndim维度或axis的 数量
.shape数组的维度(m,n)
.size数组元素的个数(m*n)
.dtype数组元素的类型

说明:
1、可通过.shape[n]形式获得每一维的元素个数,其中n是维度,从0开始。通常使用.shape[0]获取输入数据样本的个数。

特征1特征2特征3
样本1123
样本2456
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.shape)    # 输出(2,3)
print(a.shape[0]) # 输出2,代表数据有多少个样本
print(a.shape[1]) # 输出3,代表每个样本有多少个特征

array的类型及转化方法

当array进行不同元素类型转化的时候,一般遵循“尽可能保留更多有效信息”的原则进行转化。

# 整型转浮点型
np.array([1, 1.1])

强制输出某一类型对象

a = np.array([1, 1.1], dtype = 'int')        # dtype参数
a

array类型转化
也可以针对已经创建好的Array进行类型转化。此时使用astype方法。

a = np.array([1, 2])
a.astype(np.float64)           # 但不改变原对象
a = a.astype(np.float64)
a = a.astype("float")

2、ndarray对象的创建

array函数 创建

从Python的列表List和嵌套列表创建array
一维数组的创建

import numpy as np
a = np.array([1,2,3,4,5,6], dtype=np.float64) # dtype可选
print(a) 

二维数组的创建

import numpy as np
a = np.array([[1,2,3],[4,5,6]], dtype=np.float64)
print(a)

arange等函数 创建

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

numpy.arange(start, stop, step)

参数说明
start起始值,默认为0
stop终止值(不包括)
step步长,默认为1
import numpy as np
a = np.arange(1,10,2)
print(a) # 输出[1 3 5 7 9]

np.linspace(start, stop, num=50, endpoint=True, retstep=False,dtype = None)

参数说明
start起始值
stop终止值,是否包含取决于endpoint=True
num生成数组元素的个数,默认为50
endpointendpoint=True,包含stop对应的数值
retstepretstep=True,包含stop对应的数值
dtype数组元素的类型

np.linspace()函数用于创建一个一维数组,数组是一个等差数列构成的。

import numpy as np
a = np.linspace(5,50, num=10, endpoint=True,dtype=np.int64)
print(a) # 输出[5 10 15 20 25 30 35 40 45 50]

np.zeros(shape)

使用zeros创建全是0的数组
np.zeros(shape, dtype=None, order=‘C’)
说明:shape是一个元组

import numpy as np
a = np.zeros((2,3),dtype=np.int64)
print(a) # 输出[[0 0 0],[0 0 0]]

np.ones(shape)

使用ones创建全是1的数组
np.ones(shape, dtype=None, order=‘C’)

import numpy as np
a = np.ones((2,3),dtype=np.float64)
print(a) # 输出[[1. 1. 1.] [1. 1. 1.]]

np.full(shape)

使用full创建指定值的数组
np.full(shape, fill_value, dtype=None, order=‘C’)

import numpy as np
a = np.full((2,3),6)
print(a) # 输出[[6. 6. 6.] [6. 6. 6.]]

随机数(random) 创建

官方文档地址在这里插入图片描述

生成随机数的np.random模块构建

numpy.random.random(size=None)

该方法返回[0.0, 1.0)(左闭右开)范围的随机数。

import numpy as np
np.random.seed(6)
a = np.random.random(size=(2,3))
print(a) # 输出[[0.89286015 0.33197981 0.82122912] [0.04169663 0.10765668 0.59505206]]

numpy.random.randint(low, high=None, size=None, dtype=None)

该方法主要有三个参数low、high、size 三个参数。默认high 是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)。

import numpy as np
np.random.seed(6)
a = np.random.randint(1,7,size=(2,3))
print(a) # 输出[[3 2 4] [5 3 6]]

numpy.random.rand(d0,d1,…,dn)

随机数组:rand生成服从01均匀分布的随机数
返回数据在[0, 1)之间,具有均匀分布

import numpy as np
np.random.rand(2, 5)

numpy.random.randn(d0,d1,…,dn)

randn 函数返回一个或一组样本,具有标准正态分布(期望为0,方差为1)。
d0,d1,…,dn 表示每个维度有多少个元素

import numpy as np
np.random.seed(6)
a = np.random.rand(2,3)
print(a) # 输出[[-0.31178367  0.72900392  0.21782079] [-0.8990918  -2.48678065  0.91325152]]

np.random.normal(loc=1.0,scale=1.0,size=None) 指定期望和方差的正太分布

正太分布loc:期望 scale:方差 size 形状

import numpy as np
np.random.seed(6)
a = np.random.normal(80,100,(2,3))
print(a) # 输出[[  48.82163265  152.90039236  101.78207881] [  -9.90917965 -168.67806516  171.32515212]]

np.random.uniformal(low=0.0, high=1.0, size=None) 产生具有均匀分布的数组

起始值low 结束值high 形状size

import numpy as np
np.random.seed(6)
a = np.random.uniform(80,90,(2,3))
print(a) # 输出[[88.92860151 83.31979805 88.21229123] [80.41696626 81.0765668  85.95052064]]

np.random.shuffle(x)

x : array_like
The array or list to be shuffled.

a = np.arange(20).reshape(4,5)
# 如果数组是多维的,则只会在第一维度打散数据
np.random.shuffle(a)
a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值