Python中创建ndarrary的20中方法
来源:互联网 发布:淘宝商品推广平台 编辑:程序博客网 时间:2024/05/23 19:24
本文完整示例:完整示例代码
本文介绍了基础的、常用的创建ndarrary的多种方法,附带示例代码。
一、通过ndarray创建
import numpy as np
1.1 一维数组
a = np.array([1, 2, 3])a
array([1, 2, 3])
1.2 二维数组
np.array([[1, 2, 3, 4], [2, 3, 4, 5]])
array([[1, 2, 3, 4], [2, 3, 4, 5]])
1.3 三维数组
arr1 = np.array([ [ [1, 2, 32, 23], [23, 3, 23, 3] ], [ [1, 2, 3, 4], [23, 3, 4, 32] ]])print(arr1)print(type(arr1))arr1
[[[ 1 2 32 23] [23 3 23 3]] [[ 1 2 3 4] [23 3 4 32]]]<class 'numpy.ndarray'>array([[[ 1, 2, 32, 23], [23, 3, 23, 3]], [[ 1, 2, 3, 4], [23, 3, 4, 32]]])
二、创建ndarrary的常见函数
2. zeros()函数,指定一个维度元组(形状参数),返回全0的ndarrary
arr2 = np.zeros((2, 4))arr2
array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.]])
3. ones()函数,指定一个维度元组(形状参数),返回全1的ndarrary
arr3 = np.ones((4, 4))arr3
array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]])
4. empty()函数,指定一个维度元组(形状参数),返回一个值(垃圾值)为被初始化的ndarrary
arr4 = np.empty((2, 2))arr4
array([[ 7.89119642e-312, 4.22795269e-307], [ 9.34608432e-307, 1.11258854e-306]])
三、其他创建ndarrary的方式
5. numpy.arange([start ], stop[, step ], dtype=None)函数,左开右闭
arr5 = np.arange(1, 10, 1)arr5
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
6. numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)函数, 产生一个等差数列,左闭右闭
arr6 = np.linspace(0, 4, 5)arr6
array([ 0., 1., 2., 3., 4.])
7. numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)函数,底数默认为10
arr7 = np.logspace(0, 4, 5, base=2)arr7
array([ 1., 2., 4., 8., 16.])
8. numpy.eye(N, M=None, k=0, dtype=
arr8 = np.eye(4, 3)arr8
array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.], [ 0., 0., 0.]])
9. numpy.zeros_like(a, dtype=None, order=’K’, subok=True)函数,返回一个与a的形状参数一样的元素全部为0的数组
Return an array of zeros with the same shape and type as a given array.
参数subok,是否继承a的数据类型;
参数order,指定返回的结果在内存中的存储布局,默认是’K’,表示尽可能与a相同。
# 返回一个与arr8形状应的全0数组arr9 = np.zeros_like(arr8)arr9
array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]])
10. numpy.ones_like(a, dtype=None, order=’K’, subok=True)函数,
返回一个与a的形状参数一样且元素全为0的数组
# 返回一个与ar9形状应的全0数组arr10 = np.ones_like(arr9)arr10
array([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]])
11. numpy.empty_like(a, dtype=None, order=’K’, subok=True)函数,返回一个与a形状相同且全部值为垃圾值(随机值)的数组
Return a new array with the same shape and type as a given array.
arr11 = np.empty_like(np.ones((5,4)))arr11
array([[ 7.89102294e-312, 6.27463370e-322, 0.00000000e+000, 0.00000000e+000], [ 8.45593933e-307, 5.30276956e+180, 7.70748458e-043, 4.57487963e-071], [ 3.45618033e-086, 3.35860426e-143, 6.01433264e+175, 6.93885958e+218], [ 5.56218858e+180, 3.94356143e+180, 4.75084178e-037, 1.24689504e-047], [ 3.85156077e-057, 2.06073242e+184, 4.71530148e-143, 1.50008929e+248]])
12. numpy.copy(a, order=’K’)函数,返回与a一样的数组
Return an array copy of the given object.
# 属于深拷贝,修改复制数组,对原数组没有影响arr12 = np.copy(arr11)arr12[0, 0] = 1arr12
array([[ 1.00000000e+000, 6.27463370e-322, 0.00000000e+000, 0.00000000e+000], [ 8.45593933e-307, 5.30276956e+180, 7.70748458e-043, 4.57487963e-071], [ 3.45618033e-086, 3.35860426e-143, 6.01433264e+175, 6.93885958e+218], [ 5.56218858e+180, 3.94356143e+180, 4.75084178e-037, 1.24689504e-047], [ 3.85156077e-057, 2.06073242e+184, 4.71530148e-143, 1.50008929e+248]])
13. numpy.identity(n, dtype=None)函数,返回一个n阶单位方阵
Return the identity array.
arr13 = np.identity(4)arr13
array([[ 1., 0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]])
14. numpy.fromfunction(function, shape, **kwargs)返回一个数组,元素的值由函数计算,形状由shape元组限制
注意:参数shape是一个元组,shape元组中的元素个数需要与函数中的参数个数一致,分别表示不同纬度。
arr20 = np.fromfunction(lambda x, y: x+y, shape=(3, 3))print(arr20)arr21 = np.fromfunction(lambda x, y, z: x+y+z, shape=(3, 3, 3))arr21
[[ 0. 1. 2.] [ 1. 2. 3.] [ 2. 3. 4.]]array([[[ 0., 1., 2.], [ 1., 2., 3.], [ 2., 3., 4.]], [[ 1., 2., 3.], [ 2., 3., 4.], [ 3., 4., 5.]], [[ 2., 3., 4.], [ 3., 4., 5.], [ 4., 5., 6.]]])
15. numpy.mgrid函数
arr14 = np.mgrid[-1:3:2] # 表示从-1开始,步长为1,取2个数字print(arr14)arr15 = np.mgrid[-1:3:2j] # 当加'j'时,表示左闭右闭,且取到2个数字print(arr15)arr16 = np.mgrid[-1:3] # 当指定两个参数时,功能与numpy.arange()函数一样print(arr16)arr18 = np.mgrid[0:5, 0:5] # 分别在两个维度上做填充print(arr18)
[-1 1][-1. 3.][-1 0 1 2][[[0 0 0 0 0] [1 1 1 1 1] [2 2 2 2 2] [3 3 3 3 3] [4 4 4 4 4]] [[0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4]]]
16. numpy.ogrid函数
arr19 = np.ogrid[1:2]print(arr19)arr20 = np.ogrid[0:5, 0:5]print(arr20)
[1][array([[0], [1], [2], [3], [4]]), array([[0, 1, 2, 3, 4]])]
17. numpy.fromstring(string, dtype=float, count=-1, sep=’‘)函数,从字符串创建一个一维ndarrary
arr21 = np.fromstring('1 2 3 4', sep=' ')arr21
array([ 1., 2., 3., 4.])
18. numpy.fromiter(iterable, dtype, count=-1)函数,返回一个一维数组
# 需要指定数据类型dtypeiterable = (i*i for i in range(4))arr22 = np.fromiter(iterable,dtype=float)arr22
array([ 0., 1., 4., 9.])
四、其他方法
19. numpy.fromfile(file, dtype=float, count=-1, sep=’‘)函数,从文本文件或二进制文件中创建ndarrary
20. numpy.loadtxt(fname, dtype=<type ‘float’>, comments=’#’, delimiter=None, converters=None,skiprows=0, usecols=None, unpack=False, ndmin=0)
从文件中创建。
总结- 本文完整示例:完整示例代码
- 能力有限,欢迎指错交流;
欢迎关注个人微信公众号WaltSmithML或新浪微博WaltSmith,公众号提供机器学习、深度学习、Hadoop、Spark、Python、数学知识等免费视频教程。本人主要方向为机器学习和深度学习。非常欢迎一起交流学习哈,除了学习,还可免费帮忙download论文或者书籍哈==============
♥♥♥微信公众号♥♥♥♥♥♥♥♥♥新浪微博♥♥
阅读全文
0 0
- Python中创建ndarrary的20中方法
- Python中如何创建文件夹和嵌套文件夹的方法
- Python中创建一个多维数组的方法
- Python中创建字典的几种方法
- Python中线程的创建方法:派生Thread子类
- python中数组的创建
- Python中子类的创建
- JavaScript中创建对象的方法(中)
- python中创建字典的方法和迭代字典的方法
- python中特殊的方法
- python中string的方法
- Python中字符串的方法
- python中创建数组
- python中创建临时文件夹
- python中二维列表的创建
- pycharm 中创建python file 的templates
- python中二维列表的创建
- python中fork创建新的进程
- openresty-redis在不同网络环境下QPS对比
- 上班好难啊
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。
- WPF ItemTemplate 绑定自身
- 超详细的Java面试题总结(一)之Java基础知识
- Python中创建ndarrary的20中方法
- MySQL表结构(含数据类型、字段备注注释)导出成Excel
- 超详细的Java面试题总结(二)之Java基础知识
- Atom-编程-配置
- 如何在linux系统下安装spin
- POJ 刷题系列:2109. Power of Cryptography
- CentOs7搭建hadoop集群(伪分布式)下
- 超简单!在Keil中指定某个函数或变量存放的地址
- (ssl 1115,USACO 2.3)货币系统