Numpy数组创建及索引

这里写自定义目录标题


Numpy数组创建及索引

#(a)通过array()函数进行创建。
#创建一维数组
import numpy as np
a=np.array([0,1,2,3,4])
b=np.array((0,1,2,3,4))
print(a,type(a))
print(b,type(b))
#创建二维数组
c = np.array([[11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25],
              [26, 27, 28, 29, 30],
              [31, 32, 33, 34, 35]])
print(c, type(c))
#创建三维数组
d=np.array([[(1.5,2,3),(4,5,6)],
            [(3,2,1),(4,5,6)]])
print(d,type(d))



#(b)通过asarray()函数进行创建
#array() 和 asarray() 都可以将结构数据转化为 ndarray
import numpy as np
x=[[1,1,1],[1,1,1],[1,1,1]]
y=np.array(x)
z=np.asarray(x)
x[1][2]=2
print(x,type(x))
print(y,type(y))
print(z,type(z))


#array() 和 asarray() 的区别。( array() 和 asarray() 主要区别就是当数据源是ndarray 时, array() 仍然会 copy 出一个副
#本,占用新的内存,但不改变 dtype 时 asarray() 不会。)
import numpy as np
x=np.array([[1,1,1],[1,1,1],[1,1,1]])
y=np.array(x)
z=np.asarray(x)
w=np.asarray(x,dtype=np.int)
x[1][2]=2
print(x,type(x),x.dtype)
print(y,type(y),y.dtype)
print(z,type(z),z.dtype)
print(w,type(w),w.dtype)

#更改为较大的dtype时,其大小必须是array的最后一个axis的总大小(以字节为单位)的除数
import numpy as np
x = np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]])#int 32
print(x, x.dtype)
x.dtype=np.int16
print(x)

# (c)通过fromfunction()函数进行创建
#给函数绘图的时候可能会用到 fromfunction() ,该函数可从函数中创建数组。
#def fromfunction(function, shape, **kwargs):
#通过在每个坐标上执行一个函数来构造数组
import numpy as np
def f(x,y):
    return 10*x+y
x=np.fromfunction(f,(5,4),dtype=int)
print(x)
x=np.fromfunction(lambda i,j:i == j,(3,3),dtype=int)
print(x)
x=np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int)
print(x)

import numpy as np
x = np.zeros(5)
print(x)
x = np.zeros([2, 3])
print(x)
x=np.array([[1,2,3],[4,5,6]])
y=np.zeros_like(x)
print(y)


import numpy as np
x = np.ones(5)
print(x)
x = np.ones([2, 3])
print(x)
x=np.array([[1,2,3],[4,5,6]])
y=np.ones_like(x)
print(y)

import numpy as np
x=np.empty(5)
print(x)
x=np.empty((3,2))
print(x)
x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.empty_like(x)
print(y)

import numpy as np
x=np.eye(4)
print(x)
x=np.eye(2,3)
print(x)
x=np.identity(4)
print(x)

import numpy as np
x=np.arange(9).reshape((3,3))
print(x)
print(np.diag(x))
print(np.diag(x,k=1))
print(np.diag(x,k=-1))
v=[1,3,5,7]
x=np.diag(v)
print(x)


import numpy as np
x=np.full((2,),7)
print(x)
x=np.full(2,7)
print(x)
x=np.full((2,7),7)
print(x)
x=np.array([[1,2,3],[4,5,6]])
y=np.full_like(x,7)
print(y)


import numpy as np
x=np.arange(5)
print(x)
x=np.arange(3,7,2)
print(x)
x=np.linspace(start=0,stop=2,num=9)
print(x)
x=np.logspace(0,1,5)
print(np.around(x,2))#np.around 返回四舍五入后的值,可指定精度。
# around(a, decimals=0, out=None)
# a 输入数组 # decimals 要舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
x=np.linspace(start=0,stop=1,num=5)
x=[10**i for i in x]
print(np.around(x,2))
x=np.random.random(5)
print(x)
x=np.random.random([2,3])
print(x)

#4.4.4 结构数组的创建
#(a)利用字典来定义结构
import numpy as np
personType=np.dtype({
    'names':['name','age','weight'],
    'formats':['U30','i8','f8']})
a=np.array([('Liming',24,63.9),('Mike',15,67.),('Jan',34,45.8)],
             dtype=personType)
print(a,type(a))


#(b)利用包含多个元组的列表来定义结构
import numpy as np
personType=np.dtype([('name','U30'),('age','i8'),('weight','f8')])
a=np.array([('Liming',24,63.9),('Mike',15,67.),('Jan',34,45.8)],
dtype=personType)
print(a,type(a))
# 结构数组的取值方式和一般数组差不多,可以通过下标取得元素:
print(a[0])
print(a[-2:])
# 我们可以使用字段名作为下标获取对应的值
print(a['name'])
print(a['age'])
print(a['weight'])

#数组的属性
import numpy as np
a=np.array([1,2,3,4,5])
print(a.shape)#表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)
print(a.dtype)#对象的元素类型
print(a.size)#数组中所有元素的总量,相当于数组的 shape 中所有元素的乘积,例如矩阵的元素总量为行与列的乘积
print(a.ndim)# 用于返回数组的维数(轴的个数)也称为秩,一维数组的秩为 1,二维数组的秩为 2,以此类推。
print(a.itemsize)# 以字节的形式返回数组中每一个元素的大小。
b=np.array([[1,2,3],[4,5,6.0]])
print(b.shape)
print(b.dtype)
print(b.size)
print(b.ndim)
print(b.itemsize)

#在 ndarray 中所有元素必须是同一类型,否则会自动向下转换, int->float->str 。
import numpy as np
a=np.array([1,2,3,4,5])
print(a)
b=np.array([1,2,3,4,'5'])
print(b)
c=np.array([1,2,3,4,5.0])
print(c)

#6副本与视图
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x
y[0] = -1
print(x)
print(y)

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x.copy()
y[0] = -1
print(x)
print(y)


#数组切片操作返回的对象只是原数组的视图
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25],
              [26, 27, 28, 29, 30],
              [31, 32, 33, 34, 35]])
y=x
y[::2,:3:2]=-1
print(x)
print(y)
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值