python创建数组 20个_Python中创建ndarrary的20中方法

本文完整示例:完整示例代码

本文介绍了基础的、常用的创建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]]]

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=

Return a 2-D array with ones on the diagonal and zeros elsewhere.

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] = 1

arr12

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)函数,返回一个一维数组

# 需要指定数据类型dtype

iterable = (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=, comments=’#’, delimiter=None, converters=None,skiprows=0, usecols=None, unpack=False, ndmin=0)从文件中创建。

总结

本文完整示例:完整示例代码

能力有限,欢迎指错交流;

欢迎关注个人微信公众号WaltSmithML或新浪微博WaltSmith,公众号提供机器学习、深度学习、Hadoop、Spark、Python、数学知识等免费视频教程。本人主要方向为机器学习和深度学习。非常欢迎一起交流学习哈,除了学习,还可免费帮忙download论文或者书籍哈==============

???微信公众号???

????

??新浪微博??

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值