python - 如何在numpy中返回一个数组列?
问题描述
所以我想编写一个函数,对数组中的每个元素执行 z-score 转换,并且该函数应该返回一个结果数组。当我使用循环对数组中的每个元素执行转换时,这for
不是问题。
x1 = np.array([[4,3,12],[1,5,20],[1,2,3],[10,20,40],[7,2,44]])
mean = np.average(x1)
std = np.std(x1)
for i in x1:
arr1 = ((i-mean)/std)
print(arr1)
type(arr1)
for
但是,当我对数组的第 1 列使用循环时,我得到了float
值。
for x in x1[:,1]:
arr2 = ((i-mean)/std)
print(arr2)
type(arr2)
解决方案
您不需要循环来计算:
(x-x.mean())/x.std()
例子:
x = np.arange(3*4).reshape(3,4)
#[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
(x-x.mean())/x.std()
#[[-1.59325501 -1.30357228 -1.01388955 -0.72420682]
# [-0.43452409 -0.14484136 0.14484136 0.43452409]
# [ 0.72420682 1.01388955 1.30357228 1.59325501]]
然后您可以选择您想要的任何列/行:
选择第一列:
((x-x.mean())/x.std())[:,0]
#[-1.59325501 -0.43452409 0.72420682]
推荐阅读
- c - 32 位机器上“双”结构成员的填充逻辑
- android - Android - 从另一个片段内的回收器视图调用片段
- python - 如何将数据帧传递给函数(提高代码效率)
- javascript - 每次单击图像时,我都会收到“未捕获的类型错误:无法读取未定义的属性‘切换’”
- react-native - 如何在 react-native-web 中的屏幕之间导航
- javascript - 如何检查日期是否包含在假期中?
- javascript - 下一个 JS 构建不适用于撇号
- mysql - MYSQL 中多个 CASE-WHEN VS 多个 IF 语句之间的区别
- c++ - Ret 的模板 ( Class::*member )( Args... )
- vue.js - Web3js 在 Vue3 组合 api 项目中导入失败