NumPy 数组创建和操作
数组和创建和操作
array函数创建数组
最简单也是最直观的方式,就是使用array函数直接创建numpy数组。
import numpy as _np
_nparray = _np.array([1, 2, 3, 4])
print(_nparray) # [1 2 3 4]
_nparray = _np.array(list('abcdefg'))
print(_nparray) # ['a' 'b' 'c' 'd' 'e' 'f' 'g']
_nparray = _np.array([[11, 22, 33, 44], [10, 20, 30, 40]])
print(_nparray)
asarray函数创建数组
asarray将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制,而只是创建一个数组视图(内存和值一致)。
当数据源是ndarray时,array与asarray的区别:array会创建一个新的数组,占用新的内存,但asarray不会新建数组,只是创建一个数组视图。
当数据源是其它类型时,asarray与array的效果一致。
import numpy as _np
a=_np.random.random((3,3))
b=_np.array(a,dtype='float64')
c=_np.asarray(a,dtype='float64')
a[2]=2
print(a)
print(b)
print(c)
输出结果:
[[0.6063515 0.57079181 0.37905249]
[0.93433921 0.31937387 0.19274729]
[2. 2. 2. ]]
[[0.6063515 0.57079181 0.37905249]
[0.93433921 0.31937387 0.19274729]
[0.89158493 0.5626946 0.33283693]]
[[0.6063515 0.57079181 0.37905249]
[0.93433921 0.31937387 0.19274729]
[2. 2. 2. ]]
zeros和zeros_like创建数组
- zeros:表示直接创建全零数组
- zeros_like:根据传入的ndarray数组的shape来创建所有元素为0的数组
import numpy as _np
ndarray = _np.zeros(10)
print(ndarray)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
ndarray = _np.zeros((2, 2))
print(ndarray)
'''
[[0. 0.]
[0. 0.]]
'''
ndarray = _np.array([[11, 22, 33, 44], [10, 20, 30, 40]])
ndarray1 = _np.zeros_like(ndarray)
print(ndarray1)
'''
[[0 0 0 0]
[0 0 0 0]]
'''
ones和ones_like创建数组
用于创建所有元素都为1的数组。ones_like用法同zeros_like用法
import numpy as _np
ndarray = _np.ones(10)
print(ndarray)
# [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
ndarray = _np.ones((2, 2))
print(ndarray)
'''
[[1. 1.]
[1. 1.]]
'''
ndarray = _np.array([[11, 22, 33, 44], [10, 20, 30, 40]])
ndarray1 = _np.ones_like(ndarray)
print(ndarray1)
'''
[[1 1 1 1]
[1 1 1 1]]
'''
empty和empty_like创建数组
用于创建空数组,空数据中的值并不为0,而是未初始化的随机值.
import numpy as _np
ndarray = _np.empty(3)
print(ndarray)
ndarray = _np.empty((2, 2))
print(ndarray)
ndarray = _np.array([[11, 22, 33, 44], [10, 20, 30, 40]])
ndarray1 = _np.empty_like(ndarray)
print(ndarray1)
arange创建数组
arange函数是python内置函数range函数的数组版本。
import numpy as _np
ndarray = _np.arange(10)
print(ndarray)
# [0 1 2 3 4 5 6 7 8 9]
ndarray = _np.arange(10,20)
print(ndarray)
# [10 11 12 13 14 15 16 17 18 19]
ndarray = _np.arange(10,20,2)
print(ndarray)
# [10 12 14 16 18]
linspace创建数组
numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数 | 说明 |
---|---|
start | 序列的起始值 |
stop | 序列的终止值,如果endpoint为true,该值包含于数列中 |
num | 要生成的等步长的样本数量,默认为50 |
endpoint | 该值为 true 时,数列中包含stop值,反之不包含,默认是True。 |
retstep | 如果为 True 时,生成的数组中会显示间距,反之不显示。 |
dtype | ndarray 的数据类型 |