记录学习 numpy数组元素的基本操作

关于数组元素的基本操作

import numpy as np

#%% md

创建数组

这里注意一下,通过print
数组的数据分割用的是空格,而列表用的是逗号
数据的类型必须一致
如果一个有小数点,那么所有数据都会变成浮点
是字符串, 变成字符串

1.列表创数组

#%%

list_array = [i*3 for i in range(8)]
list_array=np.array(list_array)
#list_array
print(list_array)

#%% md

2.元组创建数组

#%%

tuple_array = (tuple([i*3 for i in range(8)]))
tuple_array=np.array(list_array)
#list_array
print(list_array)

#%% md

3.字符串创建数组

#%%

str_array= np.array(‘字符串’)
print(str_array)
tuple_array.dtype #dtype 查看数组的数据的数据类型

#%% md

4.直接生产数组

#%%

#数列数组

0开始11停隔一个数,也就是相减为2

rang_array=np.arange(0,11,2)
print(rang_array)

#零数组 一数组

20个零 零数组是浮点型

zero_array=np.zeros(20)

20个一 一数组是浮点型

ones_array=np.ones(20)
print(zero_array)
print(ones_array)
print(zero_array.dtype)

#%%

#e矩阵 5*5的单位矩阵 二阶矩阵
e_array=np.eye(5)
print(e_array)

#%% md

多维数组

几个中阔号就是几维数组
可以通过给列表或数组加[]直接给他们上升维度

#%%

high_dimension_array=np.eye(3)
print(high_dimension_array)
high_dimension_array=np.array([high_dimension_array])
print(high_dimension_array)

#%% md

数组的属性

#%%

#秩
high_dimension_array.ndim

#%%

#形状 懵了就看逗号和中阔号
high_dimension_array.shape
# 1 3 3
#这里是 一个二维的数组 一个二位数组有3个一维的数组,一个一维数组有3个元素

#%%

#数据个数

#len()表示下一级的数组有几个 比如e数组二维的

打印了5 ,为5个一维数组

print(len(e_array))
print(e_array)
print(‘-’*60)

这个数组是三维的 二维数组只有一个 ,所以打印了1

print(len(high_dimension_array))
print(high_dimension_array)

#%%

e_array.size
#size能直接出具体数据数量

#%%

int32和 int64 一个单位元素占4 8 字节 也叫 i4 i8

                 #dtype定义数组的元素类型

dtype_array =np.eye(5,dtype=‘int32’)
dtype_array.itemsize

#%% md

改变数组维度

#%%

#reshape不改变原来的数组 但是要有变量接受它 所以参数乘起来一定要相同
two_array=ones_array
#三维
two_array=two_array.reshape(2,2,5)
print(two_array)
#一维
two_array=two_array.reshape(20,)
print(two_array)
#二维
two_array=two_array.reshape(4,5)
print(two_array)

#%%

#直接降成一维 flatten 不改变原数据
one_dimension_two_array=two_array.flatten()
one_dimension_two_array[1]=999
print(‘后文件’)
print(one_dimension_two_array)
print(‘前文件’)
print(two_array)
print(‘*’*60)

one_dimension_two_array=two_array.ravel()
one_dimension_two_array[1]=999
print(‘后文件’)
print(one_dimension_two_array)
print(‘前文件’)
print(two_array)
#%% md

数组操作

数字索引

#%%
#切片
shuyin_array =np.arange(0,12)
qiepian_array = shuyin_array[0:8]
print(qiepian_array)
#多维数组切片
shuyin_array=shuyin_array.reshape(3,4)
#这里是二维的数组所以应该是第二行
diyiwei_shuyin_array=shuyin_array[1]
#对第一行再切片
geti_shuyin_array=diyiwei_shuyin_array[3]
print(geti_shuyin_array)
#直接打的两种方法
print(shuyin_array[1][3])
print(shuyin_array[1,3])
#对列切片
#第二列
lie_shuyin_array=shuyin_array[:,2]
print(lie_shuyin_array)
print('*‘60)
#行列组合切片
#各自切片,分开 高维在前
hanglie_shuyin_array=shuyin_array[:3,2:4]
print(hanglie_shuyin_array)
#或者分开切片 对于二维来说没逗号是行,有逗号是列
hanglie_shuyin_array=shuyin_array[:3][:,2:4]
print(hanglie_shuyin_array)
print('
’*60)
#前后切片和顺序逆序切片 和步长
line_array=np.arange(20)
#如果第三个参数是负数 那么前俩个数 也就是起点和终点 起点>终点 这时第一个参数默认值为原数组最后
hou_array=line_array[:6:-2]
#如果第三个参数是正数 那么一切正常
qian_array=line_array[:6:2]
print(hou_array)
print(qian_array)
#%% md

条件索引和赋值

#%%
condition_array=np.arange(20)
#检索5-15的数

这里 &表示交集 |表或集

f_to_f=condition_array[(condition_array<15) & (5<condition_array)]
print(f_to_f)

~表非集

print(‘*’*60)
no_f_to_f=condition_array[~((condition_array<15) & (5<condition_array))]
print(no_f_to_f)

5-15的数变成1

print(‘*’*60)
condition_array[(condition_array<15) & (5<condition_array)] =1
print(condition_array)
#判断切分
condition_array=np.arange(20)
divid=np.where((condition_array<15) | (5<condition_array),1,0)
print(divid)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值