大型网站开发pdf,移动商城搭建,爱网恋的男生,做外贸需要几个网站参考链接#xff1a; Python中的Array | 数组1(简介和功能)
一、list和array的区别
Python的数组通过Numpy包的array实现。 Python里二者最大的区别是#xff0c;list可以存储不同类型的数据#xff0c;而array只能存储相同类型的数据。
import numpy
#直接定义
a […参考链接 Python中的Array | 数组1(简介和功能)
一、list和array的区别
Python的数组通过Numpy包的array实现。 Python里二者最大的区别是list可以存储不同类型的数据而array只能存储相同类型的数据。
import numpy
#直接定义
a [1,2,3,4,5] #列表list可以混合类型
b numpy.array([1,2,3,4,5]) #数字数组array
c numpy.array([1,2,3,4,5]) #字符数组array #打印出来也有不同
print(a) #[1, 2, 3, 4]
print(b) #[1 2 3]
print(c) #[1 2 3 4 5] #生成值为连续数字的对象
a1 list(range(5))
b1 numpy.arange(5) #打印结果
print(a1) #[0, 1, 2, 3, 4]
print(b1) #[0 1 2 3 4] 二、创建数组的方法
一 numpy.empty 创建未初始化的数组非空元素为随机值
numpy.empty(shape, dtype float, order ‘C’) 参数列表分别为形状数据类型在计算机中的存储为行优先 ‘C’ 或者列优先 ‘F’。
import numpy
x numpy.empty([3,2], dtype int)
print(x) [[0 0] [0 0] [0 0]] 二 numpy.zeros 创建元素为 0 的数组
numpy.zeros(shape, dtype float, order ‘C’)
import numpy
y numpy.zeros((2,2), dtypeint)
print(y) [[0 0] [0 0]] 三 numpy.ones 创建元素为 1 的数组
import numpy
z numpy.ones((2,2)) #这几个创建方式都需要注意第一个参数的形式
print(z) [[1. 1.] [1. 1.]]
四 numpy.asarray 根据已有的元组或者列表创建数组
numpy.asarray(a, dtype None, order None) 这是从列表转换为数组的例子
import numpy
x [[1,2,3],[4,5,6]] #需要注意原列表的形式
y [[1,2,3],[4,5]]
z [[1,2,3],[4,5,6]]
q [[1,2,3],[4,5,6]] a numpy.asarray(x)
b numpy.asarray(y)
c numpy.asarray(z)
d numpy.asarray(q,dtypefloat)
print(a)
print(b)
print(c)
print(d) [[1 2 3] [4 5 6]]
[list([1, 2, 3]) list([4, 5])]
[[1 2 3] [4 5 6]]
[[1. 2. 3.] [4. 5. 6.]] 五 numpy.frombuffer 流形式读入转换为数组
numpy.frombuffer(buffer, dtype float, count -1, offset 0) 细节太多不讨论了需要的时候再看
六 numpy.fromiter 从可迭代对象创建数组返回一维数组
numpy.fromiter(iterable, dtype, count-1) count为读取的数据数量默认为-1读取所有数据
import numpy
x range(5)
it iter(x)
a numpy.fromiter(x, dtypefloat)
print(a) [0. 1. 2. 3. 4.] 七 numpy.arange 从数值范围创建数组
numpy.arange(start, stop, step, dtype)
import numpy
a numpy.arange(5)
print(a) [0 1 2 3 4] 八 numpy.linspace 创建等差数列一维数组
numpy.linspace(start, stop, num50, endpointTrue, retstepFalse, dtypeNone) num为数量endpoint为真时stop被包含在数列中retstep为真时显示间距
import numpy
a numpy.linspace(0,100,11)
b numpy.linspace(0,100,11,retstep True, dtypeint)
print(a)
print(b) [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.]
(array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]), 10.0) 九 numpy.logspace 创建等比数列一维数组
numpy.logspace(start, stop, num50, endpointTrue, base10.0, dtypeNone) 序列的起始值为base**start base为底的start次方 序列的终止值为base ** stop base为底的stop次方 如果endpoint为true该值包含于数列中 base为log的底数
import numpy
a numpy.logspace(1, 4, 4, base3, dtype int)
b numpy.logspace(1, 10, 10, base2)
print(a)
print(b) [ 3 9 27 81]
[ 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.] 三、array的操作
一 reshape 整形
import numpy
a numpy.arange(6)
b a.reshape(3,2) #改变数组形状参数是行数和列数需要匹配原数组的元素数量否则报错
print(a)
print(b) [0 1 2 3 4 5 6 7]
[[0 1] [2 3] [4 5] [6 7]] 二 flat 数组迭代器
import numpy
#一维数组可以直接for循环迭代
a numpy.arange(6)
for x in a: print(x) b numpy.arange(6).reshape(3,2) #二维数组
#flat迭代器
for x in b.flat: print(x) #多重for循环跟迭代器二者等效
for x in b: for y in x: print(y) 三 flatten 深拷贝同copy()
ndarray.flatten(order‘C’) order‘C’ – 按行‘F’ – 按列‘A’ – 原顺序‘K’ – 元素在内存中的出现顺序。
import numpy
a numpy.arange(4)
ba.copy()
ca.flatten() a[1] 8
b[0] 9 print(a)
print(b)
print(c) [0 8 2 3]
[9 1 2 3]
[0 1 2 3] 四 ravel 返回数组的视图修改会影响原数组
numpy.ravel(a, order‘C’) order‘C’ – 按行‘F’ – 按列‘A’ – 原顺序‘K’ – 元素在内存中的出现顺序。
import numpy
a numpy.arange(8).reshape(2,4)
b a.ravel()
c a.ravel(order F) # 就这个修改不会影响其他的
d a.ravel(order A)
e a.ravel(order K)
print(a)
print(b)
print(c)
print(d)
print(e) [[0 1 2 3] [4 5 6 7]]
[0 1 2 3 4 5 6 7]
[0 4 1 5 2 6 3 7]
[0 1 2 3 4 5 6 7]
[0 1 2 3 4 5 6 7] 注意修改orderF’模式的时候不会影响其他模式的序列没有深究为何用的时候再找。
b[4] 44
c[5] 55
d[6] 66
e[7] 77
print(a)
print(b)
print(c)
print(d)
print(e) [[ 0 1 2 3] [44 5 66 77]]
[ 0 1 2 3 44 5 66 77]
[ 0 4 1 5 2 55 3 7]
[ 0 1 2 3 44 5 66 77]
[ 0 1 2 3 44 5 66 77] 五 transpose 等同于T翻转数组行和列
numpy.transpose(arr, axes) arr要操作的数组 axes整数列表对应维度通常所有维度都会对换。
import numpy
a numpy.arange(6).reshape(2,3)
b a.transpose()
c a.T #注意写法 print(a)
print(b)
print(c) [[0 1 2] [3 4 5]]
[[0 3] [1 4] [2 5]]
[[0 3] [1 4] [2 5]] 六 后面暂时略以后补完