NumPy 创建数组

NumPy 创建数组,创建数组最简单的方法就是使用numpy.array函数,它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。也可以使用numpy.zeros,numpy.empty,numpy.ones,numpy.arange,numpy.eys等创建数组。

numpy.array创建数组

import numpy as np
ndarray1 = np.array([1, 2, 3, 4])
ndarray2 = np.array(list('abcdefg'))
ndarray3 = np.array([[11, 22, 33, 44], [10, 20, 30, 40]])
print(ndarray1)
print(ndarray2)
print(ndarray3)

输出结果:

[1 2 3 4]
['a' 'b' 'c' 'd' 'e' 'f' 'g']
[[11 22 33 44]
 [10 20 30 40]]

numpy.zeros和zeros_like创建数组

用于创建数组,数组元素默认值是0. 注意:zeros_linke函数只是根据传入的ndarray数组的shape来创建所有元素为0的数组,并不是拷贝源数组中的数据

numpy.zeros(shape, dtype = float, order = 'C')

参数说明:
NumPy 创建数组

实例 1

import numpy as np
# 默认为浮点数
x = np.zeros(5) 
print(x)
# 设置类型为整数
y = np.zeros((5,), dtype = np.int)
print(y)
# 自定义类型
z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])
print(z)

输出结果为:

[0. 0. 0. 0. 0.]
[0 0 0 0 0]
[[(0, 0) (0, 0)]
 [(0, 0) (0, 0)]]

实例 2

import numpy as np
ndarray4 = np.zeros(10)
ndarray5 = np.zeros((3, 3))
# 按照 ndarray5 的shape创建数组
ndarray6 = np.zeros_like(ndarray5)
print("以下为数组类型:")
print('ndarray4:', type(ndarray4))
print('ndarray5:', type(ndarray5))
print('ndarray6:', type(ndarray6))
print("以下为数组元素类型:")
print('ndarray4:', ndarray4.dtype)
print('ndarray5:', ndarray5.dtype)
print('ndarray6:', ndarray6.dtype)
print("以下为数组形状:")
print('ndarray4:', ndarray4.shape)
print('ndarray5:', ndarray5.shape)
print('ndarray6:', ndarray6.shape)

输出结果:

以下为数组类型:
ndarray4: <class 'numpy.ndarray'>
ndarray5: <class 'numpy.ndarray'>
ndarray6: <class 'numpy.ndarray'>
以下为数组元素类型:
ndarray4: float64
ndarray5: float64
ndarray6: float64
以下为数组形状:
ndarray4: (10,)
ndarray5: (3, 3)
ndarray6: (3, 3)

numpy.empty和empty_like创建数组

用于创建空数组,空数据中的值并不为0,而是未初始化的随机值.

numpy.empty(shape, dtype = float, order = 'C')

参数说明:
NumPy 创建数组

实例

import numpy as np
ndarray1 = np.empty(5)
ndarray2 = np.empty((2, 3))
ndarray3 = np.empty_like(ndarray2)
print(ndarray1)
print(ndarray2)
print(ndarray3)

输出结果为:

[1.16793442e-311 8.21301813e-315 0.00000000e+000 0.00000000e+000
 0.00000000e+000]
[[1.16793389e-311 8.21349757e-315 8.21301813e-315]
 [2.22518251e-306 1.33511969e-306 2.22523004e-307]]
[[1.16786536e-311 1.16793229e-311 1.16786905e-311]
 [1.16793228e-311 1.33511969e-306 2.22523004e-307]]

注意 数组元素为随机值,因为它们未初始化。

numpy.ones和ones_like创建数组

用于创建所有元素都为1的数组,.ones_like用法和zeros_like用法相同

numpy.ones(shape, dtype = None, order = 'C')

参数说明:
NumPy 创建数组

实例 1

import numpy as np
# 默认为浮点数
x = np.ones(5) 
print(x)
# 自定义类型
x = np.ones([2,2], dtype = int)
print(x)

输出结果为:

[1. 1. 1. 1. 1.]
[[1 1]
 [1 1]]

实例 2

import numpy as np
# 创建数组,元素默认值是0
ndarray1 = np.zeros((3, 3))
ndarray2 = np.ones(10)
ndarray3 = np.ones((3, 3))
#修改元素的值
ndarray3[0][1] = 999
# 按照 ndarray1 的shape创建数组
ndarray4 = np.ones_like(ndarray1)
print(ndarray2)
print(ndarray3)
print(ndarray4)

numpy.arange创建数组

arange函数是python内置函数range函数的数组版本.

import numpy as np
ndarray1 = np.arange(10)           #产生0-9共10个元素
ndarray2 = np.arange(10, 20)       #产生从10-19共10个元素
ndarray3 = np.arange(10, 20, 2)    #产生10 12 14 16 18, 2为step 间隔为2
print(ndarray1)
print(ndarray2)
print(ndarray3)

输出结果:

[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[10 12 14 16 18]

numpy.eys创建数组

该函数用于创建一个N*N的对角矩阵数组,对角线为1,其余为0.

import numpy as np
ndarray1 = np.eye(4)
print(ndarray1)

输出结果:

[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程