Numpy学习---Task03---数组的操作

task03---数组的操作

1)更改形状

  在对数组进行操作时,为了满足格式和计算的要求通常会改变其形状。

 `numpy.ndarray.shape`

  表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 `ndim` 属性(秩)。

import numpy as np

x = np.array([1, 2, 9, 4, 5, 6, 7, 8])
print(x.shape)  # (8,)
x.shape = [2, 4]
print(x)
# [[1 2 9 4]
#  [5 6 7 8]]

`numpy.ndarray.flat`

将数组转换为一维的迭代器,可以用for访问数组每一个元素。

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.flat
print(y)
# <numpy.flatiter object at 0x0000020F9BA10C60>
for i in y:
    print(i, end=' ')
# 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[3] = 0
print(end='\n')
print(x)
# [[11 12 13  0 15]
#  [16 17 18 19 20]
#  [21 22 23 24 25]
#  [26 27 28 29 30]
#  [31 32 33 34 35]]

        忽然发现在对x进行.flat函数处理后,y内保存的地址在经过for循环打印输出一次之后无法再次实现打印输出。缘由目前我还不是很清楚。需要向其他大佬请教一下,回头解释。

`numpy.ndarray.flatten([order='C'])`

将数组的副本转换为一维数组,并返回。

  • ndarray.flatten(order='C')
  • Return a copy of the array collapsed into one dimension.

Parameters:  order : {‘C’, ‘F’, ‘A’, ‘K’}, optional

‘C’ means to flatten in row-major (C-style) order. ‘F’ means to flatten in column-major (Fortran- style) order. ‘A’ means to flatten in column-major order if a is Fortran contiguous in memory, row-major order otherwise. ‘K’ means to flatten a in the order the elements occur in memory. The default is ‘C’.

Returns: A copy of the input array, flattened to one dimension
.

x = np.random.randint(1,100,[5,1,5])
print(x)
y = x.flatten()
print(y)

'''
[[[86 89 92 24 55]]

 [[35 75 94 54 92]]

 [[51 52 62 92 50]]

 [[23 81 77 57 88]]

 [[16 69 74 25  9]]]
[86 89 92 24 55 35 75 94 54 92 51 52 62 92 50 23 81 77 57 88 16 69 74 25
  9]
'''



y[3] = 0
print(x)

'''
[[[86 89 92 24 55]]

 [[35 75 94 54 92]]

 [[51 52 62 92 50]]

 [[23 81 77 57 88]]

 [[16 69 74 25  9]]]
'''



y = x.flatten(order='F')
print(y)

'''
[86 35 51 23 16 89 75 52 81 69 92 94 62 77 74 24 54 92 57 25 55 92 50 88
  9]
'''

`numpy.ravel(a, order='C')`

  • Return a contiguous flattened array.
  • order='C'时返回的是视图;
  • order=’F‘ 时是拷贝。
y = x.ravel()
print(y)
y[3] = 0
print(x)

'''
[86 89 92 24 55 35 75 94 54 92 51 52 62 92 50 23 81 77 57 88 16 69 74 25
  9]
[[[86 89 92  0 55]]

 [[35 75 94 54 92]]

 [[51 52 62 92 50]]

 [[23 81 77 57 88]]

 [[16 69 74 25  9]]]
'''


y = x.ravel(order='
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
numpy、pandas、scipy、scikit-learn和matplotlib是Python中常用的科学计算和数据可视化库。它们之间的关系是: - Numpy是一个用于进行数值计算的库,提供了多维数组对象和一组用于操作数组的函数。它是其他科学计算库的基础。 - Pandas是一个用于数据分析和处理的库,提供了高效的数据结构和数据分析工具。它建立在Numpy之上,可以方便地处理和操作数据。 - Scipy是一个用于科学计算的库,提供了许多数学、科学和工程计算的功能。它建立在Numpy之上,并提供了更高级的数学和科学计算功能。 - Scikit-learn是一个用于机器学习的库,提供了各种机器学习算法和工具。它建立在Numpy和Scipy之上,并提供了用于训练和评估模型的函数和工具。 - Matplotlib是一个用于数据可视化的库,提供了各种绘图函数和工具。它可以用于创建各种类型的图表和图形,包括线图、散点图、柱状图等。 如果你想学习这些库,可以按照以下学习路径进行: 1. 确定学习目的,即你想要使用这些库来解决什么问题或实现什么功能。 2. 搜索相关资源,包括官方文档、教程、示例代码等。你可以参考引用\[1\]和引用\[2\]中提供的学习资料。 3. 制定学习计划,确定你需要学习的内容和学习的顺序。你可以按照引用\[2\]中提供的学习路径原则进行规划。 总之,numpy、pandas、scipy、scikit-learn和matplotlib是Python中常用的科学计算和数据可视化库,它们之间有着密切的关系,并且可以相互配合使用来进行数据分析、科学计算和机器学习等任务。 #### 引用[.reference_title] - *1* *2* [Numpy、Pandas、SciPy、Scikit-Learn、Matplotlib的关系以及学习资料](https://blog.csdn.net/u014410989/article/details/89947128)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [安装conda和pandas、numpy、scikit-learn、seaborn、matplotlib、xlutils](https://blog.csdn.net/q839039228/article/details/124516133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值