python学习笔记第二十二天--------NumPy(一)

ndarray 的随机创建

# 导入numpy,别名是np
import numpy as np

# 导入matplotlib,别名plt
import matplotlib.pyplot as plt
# random表示常见随机数,rand表示创建一个随机的浮点数数组,参数的个数表示数组维度的大小
# 默认区间是 0.0 ~ 1.0 之间
arr = np.random.rand(3, 4)
print(arr)
print(type(arr))
# ndim 参数表示数组的维度
print(arr.ndim)

# shape 参数表示数据的大小
print(arr.shape)

# dtype表示每个数据的类型
print(arr.dtype)
[[0.94220871 0.74186447 0.53216842 0.75124837]
 [0.84167253 0.74518585 0.53711758 0.44215205]
 [0.52081119 0.09454015 0.2598748  0.72548184]]
<class 'numpy.ndarray'>
2
(3, 4)
float64
# 生成一个符合标准正态分布的随机抽样浮点数数组
arr = np.random.randn(10000)
#print(arr)
plt.hist(arr, bins=100, color = "red", alpha= 0.5)
plt.show()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kecJaiMI-1582981446551)(output_3_0.png)]

# 创建一个3行4列的二维整数数组,每个元素的值的区间在 -10 ~ 20 之间
arr = np.random.randint(-10, 20, size = (3, 4)) # size = 可以省略不写
print(arr)
[[ 5 -9  8  6]
 [ 6  4 -5 14]
 [ 9 -3 -2 -4]]
# 创建一个3行4列的二维浮点数数组,每个元素的值的区间在 -10 ~ 20 之间
arr = np.random.uniform(-10, 20, (3, 4)) # size = 可以省略不写
print(arr)
[[-5.31653742 17.60424788 -2.15918047 10.7267352 ]
 [15.98828358 11.01419506 19.42791881 -4.70008625]
 [-9.53556515 -5.77644849 -9.29554531  2.76408256]]

ndarray的序列创建

# lis 是range类型,包含了 0 ~ 10 的数据的迭代器
lis = range(10)
#把  lis 做为np.array()的参数,则会创建一个包含 0 ~10 的10个元素的一维数组
arr = np.array(lis)
print(arr)
[0 1 2 3 4 5 6 7 8 9]
# array() 参数可以是多维的数组
# 下面示例:表示创建了一个三维数组,数组里包含了两个二维数组,
# 每个二维数组包含了两个一维数组,
# 每个一维数组里包含了10个元素
arr2 = np.array([[lis, lis],[lis, lis]])
print(arr2)
[[[0 1 2 3 4 5 6 7 8 9]
  [0 1 2 3 4 5 6 7 8 9]]

 [[0 1 2 3 4 5 6 7 8 9]
  [0 1 2 3 4 5 6 7 8 9]]]
# 创建一个3行4列的二维数组,默认呢数组的每个元素都是float64类型的 0
# 第二个参数可以指定数据类型
arr3 = np.zeros((3, 4), int)
print(arr3)
print(arr3.dtype)
[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]
int64
# 创建一个3行4列的二维数组,默认数组的每个元素都是float64类型的 1
# 第二个参数可以指定数据类型
arr4= np.ones((3, 4), int)
print(arr4)
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
# 初始化数组,不指定具体数值,里面的值有可能是0,有可能不是0,默认数组的每个元素都是float64类型的 
# 第二个参数可以指定数据类型
arr5 = np.empty((3, 4), int)
print(arr5)
[[-4605700129439043605  4625648372944239128 -4611327575865235492
   4622228233136338178]
 [ 4625190221550756326  4622390058650579836  4626161690677406688
  -4606394191753766578]
 [-4601814372844694916 -4605182315606924735 -4601949492001803647
   4613406579389571960]]

ndarray 的arage 和reshape

# 等同于先创建一个列表,再使用array方法来创建数组

arr = np.arange(10)
print(arr)
[0 1 2 3 4 5 6 7 8 9]
# reshape 用来调整原数组的维数,但是元素个数的总数不变
arr2 = arr.reshape(2, 5)
print(arr2)
[[0 1 2 3 4]
 [5 6 7 8 9]]
# 将十个元素的一维数组改变成 一个三维数组
arr3 = arr.reshape(1, 2, 5)
print(arr3)
[[[0 1 2 3 4]
  [5 6 7 8 9]]]
# 随机打乱原数组的序列
np.random.shuffle(arr)
print(arr)
print(arr.reshape(2, 5))
[2 1 5 9 7 6 0 4 8 3]
[[2 1 5 9 7]
 [6 0 4 8 3]]

数组的数据类型转换

zeros_float = np.zeros((3, 4))
print(zeros_float)
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
zeros_int = zeros_float.astype(np.int32)
print(zeros_int)
[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值