ndarray数组自动创建
为了实现某些运算,需要快速构造符合要求的大数组
Numpy函数生成的数组,如不指定类类型,几乎全为浮点型(arange除外,它是整形),因为科学计算中测量值,例如温度、长度,都是浮点数
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn')
np.arange(20)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19])
np.arange(5,15)
array([ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
np.arange(5,15,2) # 起始,终点,步长
array([ 5, 7, 9, 11, 13])
np.linspace(1,10,4)
array([ 1., 4., 7., 10.])
np.linspace(1,10,4,endpoint=False) #endpoint表示终止元素是否是n个生成元素中的一个
array([1. , 3.25, 5.5 , 7.75])
# 作为参数的数组
n1 = np.array([[1,2,3],[4,5,6]])
n1
array([[1, 2, 3],
[4, 5, 6]])
np.ones(10)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.ones((3,5))
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
np.ones((3,5,2))
array([[[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.]], [[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.]], [[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.]]])
np.ones_like(n1)
array([[1, 1, 1],
[1, 1, 1]])
np.zeros(5)
array([0., 0., 0., 0., 0.])
np.zeros((3,5))
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
np.zeros((3,5),dtype=np.int)
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])
np.zeros_like(n1)
array([[0, 0, 0],
[0, 0, 0]])
np.empty(5)
array([0., 0., 0., 0., 0.])
np.empty((3,5))
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
np.empty_like(n1)
array([[1761607734, 627, 159849],
[ 15198464, 1986592768, 1761607682]])
np.full(10,33)
array([33, 33, 33, 33, 33, 33, 33, 33, 33, 33])
np.full((3,2),33)
array([[33, 33],
[33, 33],
[33, 33]])
np.full_like(n1,33)
array([[33, 33, 33],
[33, 33, 33]])
# n * n 矩阵,对角线为1,其余为0
np.eye(5)
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
np.identity(5)
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
#正方形矩阵
np.diag([1,3,5,7,9])
array([[1, 0, 0, 0, 0],
[0, 3, 0, 0, 0],
[0, 0, 5, 0, 0],
[0, 0, 0, 7, 0],
[0, 0, 0, 0, 9]])
使用Numpy随机数创建特定数组
数值模拟和可视化经常需要生成各种随机数数组
np.random随机数子库对py内置random进行了补充
均匀分布随机数
# 均匀分布随机数
np.random.rand(10) #给定维度
array([0.02005439, 0.80891558, 0.5562677 , 0.46869316, 0.92231742,
0.48360549, 0.60707295, 0.8765322 , 0.03622524, 0.56985785])
np.random.rand(3,4,5) #给定维度
array([[[0.72599464, 0.83993961, 0.82219185, 0.82398166, 0.36356688],
[0.39168192, 0.30798546, 0.44759764, 0.1118108 , 0.85378293],
[0.82600419, 0.32026777, 0.21802031, 0.36702474, 0.97069152],
[0.33273498, 0.99248325, 0.11253019, 0.18952265, 0.86363985]], [[0.79576536, 0.84591304, 0.51058729, 0.17913884, 0.33642013],
[0.73720407, 0.177351 , 0.95445729, 0.95058418, 0.6877008 ],
[0.54047611, 0.40272865, 0.57165086, 0.40991547, 0.88575988],
[0.99419175, 0.78947254, 0.73026638, 0.11067003, 0.97844173]], [[0.06063713, 0.19173863, 0.72189927, 0.87016215, 0.79903106],
[0.490451 , 0.22794955, 0.24318515, 0.79332367, 0.98940884],
[0.64366935, 0.78009235, 0.91986054, 0.91137557, 0.8464019 ],
[0.93800903, 0.79523183, 0.27570733, 0.91195909, 0.65208651]]])
# 绘图测试
a = np.random.rand(500) #给定维度
plt.hist(
a,
facecolor = '#cccccc', #直方图颜色
edgecolor = 'w', #直方图边框颜色
)
plt.show()
#均匀分布,带起始,结束值
np.random.uniform(5,10,20)
array([8.69273352, 9.74400917, 9.63900495, 8.13481997, 9.37227264,
8.19094361, 5.90780594, 6.87353705, 5.13186801, 5.20761676,
7.80789903, 7.77578052, 7.8747056 , 8.32116957, 9.05401958,
7.99650407, 8.21572178, 9.84023002, 6.45075345, 6.28031921])
np.random.uniform(5,10,(3,5))
array([[8.15258875, 9.46890301, 6.87993789, 9.67530067, 7.71837652],
[8.33403327, 5.67919505, 7.00191982, 7.09070637, 8.21504323],
[5.69171455, 7.14411578, 6.03591799, 8.96227029, 6.27297609]])
#均匀分布,整数
np.random.randint(10)
1
np.random.randint(10,100)
77
np.random.randint(10,20,(3,4,5))
array([[[14, 15, 13, 19, 17],
[13, 17, 10, 12, 18],
[18, 19, 17, 18, 10],
[17, 15, 18, 16, 14]], [[11, 17, 16, 11, 14],
[15, 11, 17, 16, 18],
[18, 13, 15, 18, 19],
[10, 17, 18, 10, 14]], [[10, 14, 18, 14, 10],
[11, 14, 18, 19, 16],
[16, 16, 12, 12, 16],
[13, 16, 14, 16, 12]]])
随机数种子
相同的种子,相同的随机数
np.random.seed(1)
np.random.rand(10)
array([4.17022005e-01, 7.20324493e-01, 1.14374817e-04, 3.02332573e-01,
1.46755891e-01, 9.23385948e-02, 1.86260211e-01, 3.45560727e-01,
3.96767474e-01, 5.38816734e-01])
np.random.seed(1)
np.random.rand(10)
array([4.17022005e-01, 7.20324493e-01, 1.14374817e-04, 3.02332573e-01,
1.46755891e-01, 9.23385948e-02, 1.86260211e-01, 3.45560727e-01,
3.96767474e-01, 5.38816734e-01])
正态分布
#标准正太分布随机数,浮点数,平局数0,标准差1
np.random.randn(10)
array([-1.11731035, 0.2344157 , 1.65980218, 0.74204416, -0.19183555,
-0.88762896, -0.74715829, 1.6924546 , 0.05080775, -0.63699565])
np.random.randn(3,4,5)
array([[[ 0.19091548, 2.10025514, 0.12015895, 0.61720311,
0.30017032],
[-0.35224985, -1.1425182 , -0.34934272, -0.20889423,
0.58662319],
[ 0.83898341, 0.93110208, 0.28558733, 0.88514116,
-0.75439794],
[ 1.25286816, 0.51292982, -0.29809284, 0.48851815,
-0.07557171]], [[ 1.13162939, 1.51981682, 2.18557541, -1.39649634,
-1.44411381],
[-0.50446586, 0.16003707, 0.87616892, 0.31563495,
-2.02220122],
[-0.30620401, 0.82797464, 0.23009474, 0.76201118,
-0.22232814],
[-0.20075807, 0.18656139, 0.41005165, 0.19829972,
0.11900865]], [[-0.67066229, 0.37756379, 0.12182127, 1.12948391,
1.19891788],
[ 0.18515642, -0.37528495, -0.63873041, 0.42349435,
0.07734007],
[-0.34385368, 0.04359686, -0.62000084, 0.69803203,
-0.44712856],
[ 1.2245077 , 0.40349164, 0.59357852, -1.09491185,
0.16938243]]])
#绘图
b = np.random.randn(500)
plt.hist(
b,
facecolor='#cccccc',#直方图颜色
edgecolor='w',#直方图边框颜色
)
plt.show()
# 自定义正态分布,分布中心是loc(概率分布的均值),标准差是scale,形状是size
np.random.normal(100,10,500)
np.random.normal(100,10,(3,4,5))
plt.hist(
np.random.normal(100,10,500),
facecolor='#cccccc',#直方图颜色
edgecolor='w',#直方图边框颜色
)
plt.show()
案例:中国成年男性身高分析
生成男性身高数据
# 均与分布不符合现实
# height = np.round(np.random.uniform(1.1,2.4,500),2) #自定义正态分布,均值1.67,标准差0.3 生成10000个,保留2位小数
height = np.round(np.random.normal(1.65,0.3,10000),2)
height
array([1.26, 1.75, 1.69, ..., 1.55, 1.49, 1.62])
plt.figure(figsize=(18,10))
plt.hist(
height,
facecolor='#cccccc', #直方图颜色
edgecolor = 'w' , #直方图边框颜色
)
plt.xticks([0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5,3.75,4])
plt.show()
y = np.array([-2,3,-3,4])
x = [1,2,3,4]
plt.bar(x,y)
plt.show()
np.log
<ufunc 'log'>
10 ** 2
np.log2(1/32)
-5.0
ndarray数组自动创建的更多相关文章
- 3.2Python数据处理篇之Numpy系列(二)--- ndarray数组的创建与变换
目录 (一)ndarray数组的创建 1.从列表以元组中创建: 2.使用函数创建: (二)ndarray数组的变换 1.维度的变换: 2.类型的变换: 目录: 1.ndarray数组的创建 2.nda ...
- ndarray 数组的创建和变换
ndarray数组的创建方法 1.从python中的列表,元组等类型创建ndarray数组 x = np.array(list/tuple) x = np.array(list/tuple,dtype ...
- (一)初识NumPy库(数组的创建和变换)
在学习数据分析时,NumPy作为最基础的数据分析库,我们能够熟练的掌握它是学习数据分析的必要条件.接下来就让我们学习该库吧. 学习NumPy库的环境: python:3.6.6 编辑器:pycharm ...
- Python开发:NumPy学习(一)ndarray数组
一.数据维度 一个数据表达一个含义,一组数据表达一个或多个含义. 数据维度概念:一组数据的组织形式,其中有一维数据.二维数据.多维数据.高维数据. 1. 一维数据 一维数据由对等关系的有序或无序数据 ...
- Numpy的ndarray数组基础
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对象是用于存放同类型元素的多维数组. 1.数组的 ...
- php数组的创建及操作
//数组的创建 //1 $usernames = array('李彦宏','周宏伟','马云','俞敏洪','李开复'); echo $usernames; //array,打印类型 echo '&l ...
- ThinkPHP - 自动创建 + 自动验证 + 自动完成
自动创建:创建数据模型. $User->create(); 自动验证:验证提交的表单数据. protected $_validate = array( array('verify','requi ...
- thinkphp自动创建数据对象分析
thinkphp有一个自动创建数据对象的create方法,核心代码如下 public function create($data='',$type='') { // 如果没有传值默认取POST数据 i ...
- javascript数组操作(创建、元素删除、数组的拷贝)
这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...
随机推荐
- Flutter实战视频-移动电商-39.路由_Fluro的路由配置和静态化
39.路由_Fluro的路由配置和静态化 handler只是单个路由的配置,这节课我们要学习路由的整体配置 整体配置 新建routers.dart文件来做整体配置 detailsHandler就是我们 ...
- LeetCode: 620 Not Boring Movies(easy)
题目: X city opened a new cinema, many people would like to go to this cinema. The cinema also gives o ...
- MySQL 分区简介
MySQL自5.1开始对分区(Partition)有支持. = 水平分区(根据列属性按行分)=举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录. 水平分 ...
- [Xcode 实际操作]二、视图与手势-(5)给图像视图添加圆角效果
目录:[Swift]Xcode实际操作 本文将演示给矩形图片添加圆角效果 import UIKit class ViewController: UIViewController { override ...
- Linux - 查看并修改当前的系统时间
转载自Linux系统查看当前时间的命令 查看和修改Linux的时区 查看当前时区 命令 : date -R 修改设置Linux服务器时区 方法 A 命令 : tzselect 方法 B 仅限于RedH ...
- js中的同步和异步的个人理解(转)
你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流 ...
- 洛谷 P3462 [POI2007]ODW-Weights
题面: https://www.luogu.org/problemnew/show/P3462 https://www.lydsy.com/JudgeOnline/problem.php?id=111 ...
- c/c++学习系列之内存对齐
1.C++内存对齐规则 每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数).程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你 ...
- 098 Validate Binary Search Tree 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树.一个二叉搜索树有如下定义: 左子树只包含小于当前节点的数. 右子树只包含大于当前节点的数. 所有子树自身必须也是二叉搜索树.示例 1 ...
- Ceizenpok’s formula Gym - 100633J 扩展Lucas定理 + 中国剩余定理
http://codeforces.com/gym/100633/problem/J 其实这个解法不难学的,不需要太多的数学.但是证明的话,我可能给不了严格的证明.可以看看这篇文章 http://ww ...